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去除列表中重复元素的方法
Mar 20 Python
Python中自定义函数的教程
Apr 27 Python
使用Python中的tkinter模块作图的方法
Feb 07 Python
requests和lxml实现爬虫的方法
Jun 11 Python
获取Django项目的全部url方法详解
Oct 26 Python
Python数据类型中的“冒号“[::]——分片与步长操作示例
Jan 24 Python
Python实现的拟合二元一次函数功能示例【基于scipy模块】
May 15 Python
Python中if elif else及缩进的使用简述
May 31 Python
Python实现矩阵相乘的三种方法小结
Jul 26 Python
在IPython中执行Python程序文件的示例
Nov 01 Python
Python设计模式之桥接模式原理与用法实例分析
Jan 10 Python
Python Tkinter Entry和Text的添加与使用详解
Mar 04 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
ThinkPHP使用Smarty第三方插件方法小结
2016/03/19 PHP
JS实现悬浮移动窗口(悬浮广告)的特效
2013/03/12 Javascript
原生javaScript做得动态表格(注释写的很清楚)
2013/12/29 Javascript
jQuery实现垂直半透明手风琴特效代码分享
2015/08/21 Javascript
Javascript 函数的四种调用模式
2016/11/05 Javascript
js return返回多个值,通过对象的属性访问方法
2017/02/21 Javascript
js中的面向对象入门
2017/03/06 Javascript
vue货币过滤器的实现方法
2017/04/01 Javascript
vue的Virtual Dom实现snabbdom解密
2017/05/03 Javascript
浅谈vue+webpack项目调试方法步骤
2017/09/11 Javascript
详解ionic本地相册、拍照、裁剪、上传(单图完全版)
2017/10/10 Javascript
详解Next.js页面渲染的优化方案
2019/01/27 Javascript
Vue 理解之白话 getter/setter详解
2019/04/16 Javascript
独立部署小程序基于nodejs的服务器过程详解
2019/06/24 NodeJs
node.js实现http服务器与浏览器之间的内容缓存操作示例
2020/02/11 Javascript
Vue watch响应数据实现方法解析
2020/07/10 Javascript
解决vue项目input输入框双向绑定数据不实时生效问题
2020/08/05 Javascript
[54:15]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第二场2月1日
2021/03/11 DOTA
python逐行读取文件内容的三种方法
2014/01/20 Python
Python3使用PyQt5制作简单的画板/手写板实例
2017/10/19 Python
Tornado Web Server框架编写简易Python服务器
2018/07/28 Python
Python获取数据库数据并保存在excel表格中的方法
2019/06/12 Python
python实现静态服务器
2019/09/05 Python
python 爬虫百度地图的信息界面的实现方法
2019/10/27 Python
TensorFlow实现自定义Op方式
2020/02/04 Python
解决windows上安装tensorflow时报错,“DLL load failed: 找不到指定的模块”的问题
2020/05/20 Python
python读取hdfs上的parquet文件方式
2020/06/06 Python
俄罗斯购买内衣网站:Trusiki
2020/08/22 全球购物
建材业务员岗位职责
2013/12/08 职场文书
会计应届生的自荐信
2013/12/13 职场文书
美术教师自我鉴定
2014/02/12 职场文书
国培远程培训感言
2014/03/08 职场文书
政府信息公开实施方案
2014/05/09 职场文书
二手房购房协议书范本
2014/10/05 职场文书
浅谈Redis跟MySQL的双写问题解决方案
2022/02/24 Redis
Django框架中模型的用法
2022/06/10 Python