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利用不到一百行代码实现一个小siri
Mar 02 Python
Python即时网络爬虫项目启动说明详解
Feb 23 Python
Python 3.6 读取并操作文件内容的实例
Apr 23 Python
Python框架Flask的基本数据库操作方法分析
Jul 13 Python
Python实现正整数分解质因数操作示例
Aug 01 Python
python得到qq句柄,并显示在前台的方法
Oct 14 Python
对python中的argv和argc使用详解
Dec 15 Python
详解Python 中sys.stdin.readline()的用法
Sep 12 Python
详解python破解zip文件密码的方法
Jan 13 Python
面向新手解析python Beautiful Soup基本用法
Jul 11 Python
Python学习笔记之装饰器
Aug 06 Python
用python绘制樱花树
Oct 09 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多用户计数器代码
2007/03/11 PHP
php动态实现表格跨行跨列实现代码
2012/11/06 PHP
Laravel 5框架学习之用户认证
2015/04/09 PHP
Zend Framework教程之分发器Zend_Controller_Dispatcher用法详解
2016/03/07 PHP
PHP常见的6个错误提示及解决方法
2016/07/07 PHP
jQuery中RadioButtonList的功能及用法实例介绍
2013/08/23 Javascript
js实现弹窗插件功能实例代码分享
2013/12/12 Javascript
jQuery实现checkbox全选的方法
2015/06/10 Javascript
js实现Select头像选择实时预览代码
2015/08/17 Javascript
ECMAScript6轮播图实践知识总结
2016/08/17 Javascript
jQuery中$.ajax()方法参数解析
2016/10/22 Javascript
Bootstrap Scrollspy源码学习
2017/03/02 Javascript
浅谈js使用in和hasOwnProperty获取对象属性的区别
2017/04/27 Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(一)
2017/05/11 Javascript
jQuery完成表单验证的实例代码(纯代码)
2017/09/30 jQuery
利用JQUERY实现多个AJAX请求等待的实例
2017/12/14 jQuery
Vue.js实现的表格增加删除demo示例
2018/05/22 Javascript
利用JavaScript缓存远程窃取Wi-Fi密码的思路详解
2018/11/05 Javascript
Vuex实现数据增加和删除功能
2019/11/11 Javascript
JavaScript setTimeout()基本用法有哪些
2020/11/04 Javascript
[01:19]2014DOTA2国际邀请赛 采访TITAN战队ohaiyo 能赢DK很幸运
2014/07/12 DOTA
python分析apache访问日志脚本分享
2015/02/26 Python
Python基于OpenCV实现视频的人脸检测
2018/01/23 Python
Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块用法分析
2019/04/27 Python
Python爬虫爬取新闻资讯案例详解
2020/07/14 Python
Pytest如何使用skip跳过执行测试
2020/08/13 Python
美国波西米亚风格服装品牌:Show Me Your Mumu
2018/01/05 全球购物
最便宜促销价格订机票:Airpaz(总部设在印尼,支持中文)
2018/11/13 全球购物
行政办公员自我评价分享
2013/12/14 职场文书
采购部部长岗位职责
2014/02/06 职场文书
信息技术教学反思
2014/02/12 职场文书
房地产广告词大全
2014/03/19 职场文书
2014年售后服务工作总结
2014/11/18 职场文书
辞职信格式模板
2015/02/27 职场文书
python实现三阶魔方还原的示例代码
2021/04/28 Python
排查Tomcat进程假死的问题
2022/05/06 Servers