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中的迭代和可迭代对象代码示例
Dec 27 Python
Python管理Windows服务小脚本
Mar 12 Python
python+selenium实现QQ邮箱自动发送功能
Jan 23 Python
解决python3.5 正常安装 却不能直接使用Tkinter包的问题
Feb 22 Python
Python3实现二叉树的最大深度
Sep 30 Python
Python3和pyqt5实现控件数据动态显示方式
Dec 13 Python
python带参数打包exe及调用方式
Dec 21 Python
django3.02模板中的超链接配置实例代码
Feb 04 Python
python suds访问webservice服务实现
Jun 26 Python
详解python metaclass(元类)
Aug 13 Python
OpenCV实现机器人对物体进行移动跟随的方法实例
Nov 09 Python
Python 匹配文本并在其上一行追加文本
May 11 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源代码
2006/10/09 PHP
php计算数组相同值出现次数的代码(array_count_values)
2015/01/20 PHP
抛弃 PHP 代价太高
2016/04/26 PHP
jQuery 学习第六课 实现一个Ajax的TreeView
2010/05/17 Javascript
javascript框架设计之种子模块
2015/06/23 Javascript
JS拖拽插件实现步骤
2015/08/03 Javascript
Bootstrap每天必学之表单
2015/11/23 Javascript
JavaScript中removeChild 方法开发示例代码
2016/08/15 Javascript
关于JavaScript数组你所不知道的3件事
2016/08/24 Javascript
DataTables+BootStrap组合使用Ajax来获取数据并且动态加载dom的方法(排序,过滤,分页等)
2016/11/09 Javascript
解决浏览器会自动填充密码的问题
2017/04/28 Javascript
angular5 httpclient的示例实战
2018/03/12 Javascript
深入了解javascript 数组的sort方法
2018/06/01 Javascript
解决VUE中document.body.scrollTop为0的问题
2018/09/15 Javascript
深入解析ES6中的promise
2018/11/08 Javascript
vue返回上一页面时回到原先滚动的位置的方法
2018/12/20 Javascript
vue 全局环境切换问题
2019/10/27 Javascript
深入解读VUE中的异步渲染的实现
2020/06/19 Javascript
vue实现在进行增删改操作后刷新页面
2020/08/05 Javascript
python 时间戳与格式化时间的转化实现代码
2016/03/23 Python
python模仿网页版微信发送消息功能
2018/02/24 Python
Python使用pip安装pySerial串口通讯模块
2018/04/20 Python
Python脚本按照当前日期创建多级目录
2019/03/01 Python
基于django channel实现websocket的聊天室的方法示例
2019/04/11 Python
Django项目中使用JWT的实现代码
2019/11/04 Python
matplotlib绘制多个子图(subplot)的方法
2019/12/03 Python
python add_argument()用法解析
2020/01/29 Python
Python之变量类型和if判断方式
2020/05/05 Python
开办大学饮食联盟创业计划书
2014/01/29 职场文书
农村文化活动总结
2014/08/28 职场文书
中学感恩教育活动总结
2015/05/05 职场文书
五星红旗迎风飘扬观后感
2015/06/17 职场文书
初中团委工作总结
2015/08/13 职场文书
Redis 哨兵机制及配置实现
2022/03/25 Redis
Nginx动静分离配置实现与说明
2022/04/07 Servers
详解Python中的for循环
2022/04/30 Python