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挑选文件夹里宽大于300图片的方法
Mar 05 Python
Python自动化测试ConfigParser模块读写配置文件
Aug 15 Python
python3使用scrapy生成csv文件代码示例
Dec 28 Python
python模块smtplib学习
May 22 Python
python实现抖音点赞功能
Apr 07 Python
一篇文章彻底搞懂Python中可迭代(Iterable)、迭代器(Iterator)与生成器(Generator)的概念
May 13 Python
python 使用装饰器并记录log的示例代码
Jul 12 Python
快速解决vue.js 模板和jinja 模板冲突的问题
Jul 26 Python
python用线性回归预测股票价格的实现代码
Sep 04 Python
面向对象学习之pygame坦克大战
Sep 11 Python
python的flask框架难学吗
Jul 31 Python
Python list去重且保持原顺序不变的方法
Apr 03 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使浏览器直接下载pdf文件的方法
2013/11/15 PHP
php实现文件下载功能的几个代码分享
2014/05/10 PHP
PHP函数in_array()使用详解
2014/08/20 PHP
php中常量DIRECTORY_SEPARATOR用法深入分析
2014/11/14 PHP
PHP类的封装与继承详解
2015/09/29 PHP
php自定义函数实现汉字转换utf8编码的方法
2016/09/29 PHP
Javascript 闭包引起的IE内存泄露分析
2012/05/23 Javascript
JavaScript 布尔操作符解析  && || !
2012/08/10 Javascript
每天一篇javascript学习小结(Boolean对象)
2015/11/12 Javascript
javascript实现移动端上的触屏拖拽功能
2016/03/04 Javascript
JS HTML5拖拽上传图片预览
2016/07/18 Javascript
jQuery使用正则表达式替换dom元素标签用法示例
2017/01/16 Javascript
详解如何构建Angular项目目录结构
2017/07/13 Javascript
vue 验证码界面实现点击后标灰并设置div按钮不可点击状态
2019/10/28 Javascript
Vue实现购物车实例代码两则
2020/05/30 Javascript
jquery轮播图插件使用方法详解
2020/07/31 jQuery
[04:32]玩具屠夫中文语音节选
2020/08/23 DOTA
Python正则简单实例分析
2017/03/21 Python
python安装教程 Pycharm安装详细教程
2017/05/02 Python
Python中read()、readline()和readlines()三者间的区别和用法
2017/07/30 Python
python根据list重命名文件夹里的所有文件实例
2018/10/25 Python
使用python 打开文件并做匹配处理的实例
2019/01/02 Python
python广度优先搜索得到两点间最短路径
2019/01/17 Python
Python爬虫实现爬取百度百科词条功能实例
2019/04/05 Python
Django使用unittest模块进行单元测试过程解析
2019/08/02 Python
Python中random模块常用方法的使用教程
2020/10/04 Python
Python 随机按键模拟2小时
2020/12/30 Python
Sasa莎莎海外旗舰店:香港莎莎美妆平台
2018/03/21 全球购物
为什么会有内存对齐
2016/10/10 面试题
护士求职信范文
2014/05/24 职场文书
人事任命书怎么写
2014/06/05 职场文书
李强为自己工作观后感
2015/06/11 职场文书
岁月神偷观后感
2015/06/11 职场文书
未婚证明格式
2015/06/15 职场文书
爱国影片观后感
2015/06/18 职场文书
《田忌赛马》教学反思
2016/02/19 职场文书