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 相关文章推荐
sqlalchemy对象转dict的示例
Apr 22 Python
收集的几个Python小技巧分享
Nov 22 Python
星球大战与Python之间的那些事
Jan 07 Python
python下如何查询CS反恐精英的服务器信息
Jan 17 Python
浅谈python3.x pool.map()方法的实质
Jan 16 Python
Django框架视图函数设计示例
Jul 29 Python
Python Collatz序列实现过程解析
Oct 12 Python
pytorch torchvision.ImageFolder的用法介绍
Feb 20 Python
Python基于paramunittest模块实现excl参数化
Apr 26 Python
Python flask框架实现浏览器点击自定义跳转页面
Jun 04 Python
flask开启多线程的具体方法
Aug 02 Python
Python xlwings插入Excel图片的实现方法
Feb 26 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中让json_encode不自动转义斜杠“/”的方法
2017/02/28 PHP
PHP实现的基于单向链表解决约瑟夫环问题示例
2017/09/30 PHP
jQuery 锚点跳转滚动条平滑滚动一句话代码
2010/04/30 Javascript
将两个div左右并列显示并实现点击标题切换内容
2013/10/22 Javascript
js实现的GridView即表头固定表体有滚动条且可滚动
2014/02/19 Javascript
jquery实现pager控件示例
2014/04/09 Javascript
IE6浏览器中window.location.href无效的解决方法
2014/11/20 Javascript
JavaScript判断IE版本型号
2015/07/27 Javascript
BootStrap Tooltip插件源码解析
2016/12/27 Javascript
RequireJS 依赖关系的实例(推荐)
2017/01/21 Javascript
防止重复发送 Ajax 请求
2017/02/15 Javascript
Vue中自定义全局组件的实现方法
2017/12/08 Javascript
详解vue+webpack+express中间件接口使用
2018/07/17 Javascript
angularJs中ng-model-options设置数据同步的方法
2018/09/30 Javascript
Vue Cli3 创建项目的方法步骤
2018/10/15 Javascript
详解小程序退出页面时清除定时器
2019/04/28 Javascript
[53:10]Secret vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
python中对list去重的多种方法
2014/09/18 Python
深入理解python中函数传递参数是值传递还是引用传递
2017/11/07 Python
Python爬虫天气预报实例详解(小白入门)
2018/01/24 Python
python 读写文件,按行修改文件的方法
2018/07/12 Python
python实现创建新列表和新字典,并使元素及键值对全部变成小写
2019/01/15 Python
Python实现某论坛自动签到功能
2019/08/20 Python
pytorch torch.nn.AdaptiveAvgPool2d()自适应平均池化函数详解
2020/01/03 Python
详解python 破解网站反爬虫的两种简单方法
2020/02/09 Python
PIL.Image.open和cv2.imread的比较与相互转换的方法
2020/06/03 Python
CSS3旋转——彩色扇子兼容firefox浏览器
2013/06/04 HTML / CSS
CSS3 input框的实现代码类似Google登录的动画效果
2020/08/04 HTML / CSS
原生 JS+CSS+HTML 实现时序图的方法
2019/07/31 HTML / CSS
美体小铺印度官网:The Body Shop印度
2019/10/17 全球购物
英国最大的在线照明商店:Litecraft
2020/08/31 全球购物
PHP高级工程师面试问题推荐
2013/01/18 面试题
网络安全类面试题
2015/08/01 面试题
外贸英语专业求职信范文
2013/12/25 职场文书
2019暑假学生安全口号
2019/06/27 职场文书
共青团优秀团员申请书(范文)
2019/08/15 职场文书