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获得图片base64编码示例
Jan 16 Python
python类参数self使用示例
Feb 17 Python
跟老齐学Python之做一个小游戏
Sep 28 Python
python中列表和元组的区别
Dec 18 Python
python使用itchat库实现微信机器人(好友聊天、群聊天)
Jan 04 Python
python 读写excel文件操作示例【附源码下载】
Jun 19 Python
python turtle库画一个方格和圆实例
Jun 27 Python
Python 图像处理: 生成二维高斯分布蒙版的实例
Jul 04 Python
python文档字符串(函数使用说明)使用详解
Jul 30 Python
python不相等的两个字符串的 if 条件判断为True详解
Mar 12 Python
python 解决mysql where in 对列表(list,,array)问题
Jun 06 Python
对python pandas中 inplace 参数的理解
Jun 27 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时间戳与日期的转换
2013/06/06 PHP
PHP批量删除、清除UTF-8文件BOM头的代码实例
2014/04/14 PHP
codeigniter显示所有脚本执行时间的方法
2015/03/21 PHP
php基于dom实现的图书xml格式数据示例
2017/02/03 PHP
CI框架附属类用法分析
2018/12/26 PHP
php中加密解密DES类的简单使用方法示例
2020/03/26 PHP
javascript中的数字与字符串相加实例分析
2011/08/14 Javascript
使用angularjs创建简单表格
2016/01/21 Javascript
React-router 4 按需加载的实现方式及原理详解
2017/05/25 Javascript
给vue项目添加ESLint的详细步骤
2017/09/29 Javascript
基于Node.js的大文件分片上传示例
2019/06/19 Javascript
详解vue-flickity的fullScreen功能实现
2020/04/07 Javascript
vue插件--仿微信小程序showModel实现模态提示窗功能
2020/08/19 Javascript
vue 使用 v-model 双向绑定父子组件的值遇见的问题及解决方案
2021/03/01 Vue.js
Python的print用法示例
2014/02/11 Python
python中查看变量内存地址的方法
2015/05/05 Python
Python批量重命名同一文件夹下文件的方法
2015/05/25 Python
python并发编程之多进程、多线程、异步和协程详解
2016/10/28 Python
django1.11.1 models 数据库同步方法
2018/05/30 Python
tensorflow: variable的值与variable.read_value()的值区别详解
2018/07/30 Python
Python3数字求和的实例
2019/02/19 Python
Django获取应用下的所有models的例子
2019/08/30 Python
Python2.6版本pip安装步骤解析
2020/08/17 Python
HTML5的video标签的浏览器兼容性增强方案分享
2016/05/19 HTML / CSS
基于HTML5+Webkit实现树叶飘落动画
2017/12/28 HTML / CSS
毕业生的自我鉴定
2013/10/29 职场文书
关于逃课的检讨书
2014/01/23 职场文书
水电工岗位职责
2014/02/12 职场文书
班班通校本培训方案
2014/03/12 职场文书
市场开发与营销专业求职信范文
2014/05/01 职场文书
科技活动总结范文
2015/05/11 职场文书
2015年除四害工作总结
2015/07/23 职场文书
卫生主题班会
2015/08/14 职场文书
关于运动会的广播稿
2015/08/19 职场文书
《日月潭》教学反思
2016/02/20 职场文书
MySQL快速插入一亿测试数据
2021/06/23 MySQL