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的Tornado框架中的协程异步实现原理
Apr 23 Python
Python数据操作方法封装类实例
Jun 23 Python
Python构建XML树结构的方法示例
Jun 30 Python
python实现求两个字符串的最长公共子串方法
Jul 20 Python
Django添加KindEditor富文本编辑器的使用
Oct 24 Python
python 初始化一个定长的数组实例
Dec 02 Python
Python基本类型的连接组合和互相转换方式(13种)
Dec 16 Python
Win下PyInstaller 安装和使用教程
Dec 25 Python
pytorch方法测试详解——归一化(BatchNorm2d)
Jan 15 Python
python安装和pycharm环境搭建设置方法
May 27 Python
用Python进行栅格数据的分区统计和批量提取
May 27 Python
5行Python代码实现一键批量扣图
Jun 29 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中多线程的两个实现方法
2016/10/14 PHP
微信公众号开发之获取位置信息php代码
2018/06/13 PHP
地震发生中逃生十大法则
2008/05/12 Javascript
javascript 简练的几个函数
2009/08/29 Javascript
JS 有趣的eval优化输入验证实例代码
2013/09/22 Javascript
javascript原生和jquery库实现iframe自适应高度和宽度
2014/07/18 Javascript
jquery单选框radio绑定click事件实现方法
2015/01/14 Javascript
JS实现文字放大效果的方法
2015/03/03 Javascript
基于javascript实现九九乘法表
2016/03/27 Javascript
jQuery+PHP+Mysql实现抽奖程序
2020/04/12 jQuery
jQuery实现radio第一次点击选中第二次点击取消功能
2017/05/15 jQuery
js 只比较时间大小的实例
2017/10/26 Javascript
jQuery+koa2实现简单的Ajax请求的示例
2018/03/06 jQuery
JavaScript代码异常监控实现过程详解
2020/02/17 Javascript
[06:15]2016国际邀请赛中国区预选赛单车采访:我顶WINGS
2016/06/27 DOTA
浅谈python在提示符下使用open打开文件失败的原因及解决方法
2018/11/30 Python
Python面向对象基础入门之编码细节与注意事项
2018/12/11 Python
python列表list保留顺序去重的实例
2018/12/14 Python
浅谈numpy中np.array()与np.asarray的区别以及.tolist
2020/06/03 Python
python能在浏览器能运行吗
2020/06/17 Python
python 判断一组数据是否符合正态分布
2020/09/23 Python
HTML+CSS+JavaScript实现图片3D展览的示例代码
2020/10/12 HTML / CSS
会计电算化个人自我评价
2013/11/17 职场文书
实习自我评价怎么写
2013/12/02 职场文书
致跳远、跳高运动员广播稿
2014/01/09 职场文书
宿舍使用违章电器检讨书
2014/01/12 职场文书
2014全国两会学习心得体会2000字
2014/03/10 职场文书
禁毒宣传活动总结
2014/08/26 职场文书
人事任命通知
2015/04/20 职场文书
黄埔军校观后感
2015/06/10 职场文书
环保守法证明
2015/06/24 职场文书
毕业班班主任工作总结2015
2015/07/23 职场文书
利用JavaScript写一个简单计算器
2021/11/27 Javascript
MySQL限制查询和数据排序介绍
2022/03/25 MySQL
Ubuntu18.04下QT开发Android无法连接设备问题解决实现
2022/06/01 Java/Android
Windows Server 2022 超融合部署(图文教程)
2022/06/25 Servers