Python cx_freeze打包工具处理问题思路及解决办法


Posted in Python onFebruary 13, 2016

以下是在使用cx_freeze过程中遇到的问题及解决办法(Win7)

1.问题描述:运行exe,启动无数个主程序,导致系统无法使用

  原因:在程序中使用了multiprocessing的包

  解决办法:在主文件if __name__ == "__main__":后,添加multiprocessing.freeze_support(),一定要在添加在最开始处

2. 问题描述:运行后,提示在freeze_support中sys.stdout.flush处异常

 原因:使用的PyQT作为界面,没有控制台

 解决办法:在调用multiprocessing.freeze_support()前,重定向stdout和stderr,添加:sys.stdout = io.StringIO()和 sys.stderr = io.StringIO()

3.使用shelve模块,IDE下调试可以正常使用,打包后无法使用

原因:shelve 的 open 函数在运行中还会装入其它的数据库管理模块,无从了解还需要哪些额外的包,故在打包时就漏掉了一些必要的模块

解决办法:修改打包脚本,添加如下内容:

packages = []
for dbmodule in ['dbhash', 'gdbm', 'dbm', 'dumbdbm']:
try:
__import__(dbmodule)
except ImportError:
pass
else:
# If we found the module, ensure it's copied to the build directory.
packages.append(dbmodule)
options = {
'build_exe': {
'includes': 'atexit',
"packages": packages
}
}

4.使用inspect.getsourcelines异常OSError: could not get source code

原因:打包后,都是pyc文件,没有源代码,导致动态获取代码失败

解决办法:将包含所需源码的py文件打包到library.zip文件中,在‘build_exe'参数中,增加'zip_includes':['path\\source.py']

以上给大家分享了Python cx_freeze打包工具处理问题思路及解决办法,希望对大家有所帮助。

Python 相关文章推荐
python实现的防DDoS脚本
Feb 08 Python
Python中的包和模块实例
Nov 22 Python
KMP算法精解及其Python版的代码示例
Jun 01 Python
Selenium定时刷新网页的实现代码
Oct 31 Python
解决pyqt5中QToolButton无法使用的问题
Jun 21 Python
解决Djang2.0.1中的reverse导入失败的问题
Aug 16 Python
Pytorch之卷积层的使用详解
Dec 31 Python
python GUI库图形界面开发之PyQt5窗口类QMainWindow详细使用方法
Feb 26 Python
快速解释如何使用pandas的inplace参数的使用
Jul 23 Python
VSCode中autopep8无法运行问题解决方案(提示Error: Command failed,usage)
Mar 02 Python
Python如何导出导入所有依赖包详解
Jun 08 Python
bat批处理之字符串操作的实现
Mar 16 Python
Python批量创建迅雷任务及创建多个文件
Feb 13 #Python
Python 中 Meta Classes详解
Feb 13 #Python
教大家使用Python SqlAlchemy
Feb 12 #Python
理解Python垃圾回收机制
Feb 12 #Python
一步步解析Python斗牛游戏的概率
Feb 12 #Python
常用python编程模板汇总
Feb 12 #Python
python黑魔法之参数传递
Feb 12 #Python
You might like
PHP 数组教程 定义数组
2009/10/23 PHP
PHP中的按位与和按位或操作示例
2014/01/27 PHP
php禁用函数设置及查看方法详解
2016/07/25 PHP
javascript脚本调试方法小结
2008/11/24 Javascript
基于jQuery实现复选框的全选 全不选 反选功能
2014/11/24 Javascript
JavaScript中闭包之浅析解读(必看篇)
2016/08/25 Javascript
Javascript 实现微信分享(QQ、朋友圈、分享给朋友)
2016/10/21 Javascript
关于vue-router路径计算问题
2017/05/10 Javascript
javascript ES6 新增了let命令使用介绍
2017/07/07 Javascript
微信小程序form表单组件示例代码
2018/07/15 Javascript
vue实现双向绑定和依赖收集遇到的坑
2018/11/29 Javascript
Vue数据驱动表单渲染,轻松搞定form表单
2019/07/19 Javascript
vue自定义组件(通过Vue.use()来使用)即install的用法说明
2020/08/11 Javascript
python字符串加密解密的三种方法分享(base64 win32com)
2014/01/19 Python
Python3 能振兴 Python的原因分析
2014/11/28 Python
Python实现短网址ShortUrl的Hash运算实例讲解
2015/08/10 Python
利用Python实现网络测试的脚本分享
2017/05/26 Python
Python模拟三级菜单效果
2017/09/11 Python
Python3多线程操作简单示例
2018/05/22 Python
Python图像处理之颜色的定义与使用分析
2019/01/03 Python
python 读取文件并把矩阵转成numpy的两种方法
2019/02/12 Python
WxPython建立批量录入框窗口
2019/02/27 Python
pandas计数 value_counts()的使用
2019/06/24 Python
用python打印1~20的整数实例讲解
2019/07/01 Python
Python实现FTP文件传输的实例
2019/07/07 Python
关于pandas的离散化,面元划分详解
2019/11/22 Python
python实现从尾到头打印单链表操作示例
2020/02/22 Python
美国乡村商店:Plow & Hearth
2016/09/12 全球购物
美国休闲服装品牌:J.Crew Factory
2017/03/04 全球购物
SIDESTEP荷兰:在线购买鞋子
2019/11/18 全球购物
简述进程的启动、终止的方式以及如何进行进程的查看
2013/07/12 面试题
民主评议党员个人总结
2015/02/13 职场文书
付款证明模板
2015/06/19 职场文书
工程进度款催款函
2015/06/24 职场文书
怎样写好工作计划
2019/04/10 职场文书
Python机器学习三大件之一numpy
2021/05/10 Python