python 使用cx-freeze打包程序的实现


Posted in Python onMarch 14, 2020

python环境 3.6.5 win7 linux环境同理

先尝试了PyInstaller ,打包时一直提示 no module named gtk 而gtk 又依赖pygobject ,尝试安装几次之后失败放弃

改用cx-freeze

首先写一个 setup.py

1.py 2.py 是自己要打包的程序名字

注意里面的四个绝对路径改成真实的路径,否则会爆各种奇怪的错误,运行 python setup.py install

执行exe 比如下图,在python终端里面输入 import _tkinter是可以的,但是打包以后会这样报错,

引入 tcl86t.dll和tk86t.dll 后问题解决

python 使用cx-freeze打包程序的实现

然后很容易会报错如下图,解决办法是一个一个的在自己的python路径中找到这些.py文件,然后执行:python -m compileall +文件名.py 再把生成的.pyc文件拷到打包项目的相应位置

python 使用cx-freeze打包程序的实现

setup.py :

import sys
from cx_Freeze import setup, Executable
import os
os.environ['TCL_LIBRARY'] = "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python36\\tcl\\tcl8.6"
os.environ['TK_LIBRARY'] = "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python36\\tcl\\tk8.6"

include_files = [r"C:\Users\Administrator\AppData\Local\Programs\Python\Python36\DLLs\tcl86t.dll",
         r"C:\Users\Administrator\AppData\Local\Programs\Python\Python36\DLLs\tk86t.dll"]

#打包所需要的第三库
build_exe_options = {"packages": ["glob", "os", "numpy", "datetime", "PIL", "matplotlib", "scipy", "_tkinter"],
           "includes ": ['numpy','glob','os','datetime','datetime','PIL', "matplotlib", "matplotlib.pyplot" ,"scipy", "_tkinter"]}

base = None
if sys.platform == 'win32':
  base = 'Win32GUI'

options = {
  'build_exe': {
    'includes': 'atexit' ,'include_files': include_files
  }
}

executables = [
  Executable('1.py', base=base),
  Executable('2.py')
]

setup(name='education',
   version='0.1',
   description='education software',
   options=options,
   executables=executables
   )

补充知识:关于python3.6 cxfreeze打包 的一个Bug

我写python脚本喜欢把脚本生成exe,我用的是python3.6,自然就选择了cxfreeze这个库来生成exe

在一次项目中,同时用到了requests库和base64库,我打包exe后运行老是出现闪退,我刚开始还以为是脚本问题,但是脚本用python解释器运行就不会出现错误,我真的一脸懵逼啊,于是我猜想会不会是cxfreeze在导入库时有bug,于是我做实验验证我的猜想,结果果真如我所料。

python3.6 cxfreeze 打包时不能同时出现requests和base64这2个库,否则exe运行闪退。。。

以上这篇python 使用cx-freeze打包程序的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python使用SMTP发送qq或sina邮件
Oct 21 Python
python的构建工具setup.py的方法使用示例
Oct 23 Python
django中send_mail功能实现详解
Feb 06 Python
python寻找list中最大值、最小值并返回其所在位置的方法
Jun 27 Python
python random从集合中随机选择元素的方法
Jan 23 Python
在Python中调用Ping命令,批量IP的方法
Jan 26 Python
Python实现的微信支付方式总结【三种方式】
Apr 13 Python
Python多进程方式抓取基金网站内容的方法分析
Jun 03 Python
django框架使用方法详解
Jul 18 Python
Form表单及django的form表单的补充
Jul 25 Python
opencv3/python 鼠标响应操作详解
Dec 11 Python
Python创建临时文件和文件夹
Aug 05 Python
python matplotlib imshow热图坐标替换/映射实例
Mar 14 #Python
python pyqtgraph 保存图片到本地的实例
Mar 14 #Python
Python 实现将大图切片成小图,将小图组合成大图的例子
Mar 14 #Python
python numpy实现多次循环读取文件 等间隔过滤数据示例
Mar 14 #Python
python matplotlib 绘图 和 dpi对应关系详解
Mar 14 #Python
python 工具 字符串转numpy浮点数组的实现
Mar 14 #Python
python tkinter GUI绘制,以及点击更新显示图片代码
Mar 14 #Python
You might like
PHP分页显示制作详细讲解
2006/10/09 PHP
php中利用post传递字符串重定向的实现代码
2011/04/21 PHP
PHP中模拟处理HTTP PUT请求的例子
2014/07/22 PHP
ThinkPHP控制器里javascript代码不能执行的解决方法
2014/11/22 PHP
用JQuery 实现的自定义对话框
2007/03/24 Javascript
javascript 函数速查表
2010/02/07 Javascript
用nodejs访问ActiveX对象,以操作Access数据库为例。
2011/12/15 NodeJs
IE不支持getElementsByClassName最终完美解决方案
2012/12/17 Javascript
Javascript实现页面跳转的几种方式分享
2013/10/26 Javascript
jquery带下拉菜单和焦点图代码分享
2015/08/24 Javascript
详解JavaScript中的自定义事件编写
2016/05/10 Javascript
Vue 2.0在IE11中打开项目页面空白的问题解决
2017/07/16 Javascript
Javacript中自定义的map.js  的方法
2017/11/26 Javascript
ES6中let 和 const 的新特性
2018/09/03 Javascript
vue-cli中vue本地实现跨域调试接口
2019/01/16 Javascript
Angular中使用ng-zorro图标库部分图标不能正常显示问题
2019/04/22 Javascript
layer.open弹层查看缩略图的原图,自适应大小的实例
2019/09/05 Javascript
解决包含在label标签下的checkbox在ie8及以下版本点击事件无效果兼容的问题
2019/10/27 Javascript
vue路由缓存的几种实现方式小结
2020/02/02 Javascript
JS highcharts实现动态曲线代码示例
2020/10/16 Javascript
[02:11]完美世界DOTA2联赛10月28日赛事精彩集锦:来吧展示实力强劲
2020/10/29 DOTA
Python字符串逐字符或逐词反转方法
2015/05/21 Python
python使用Tesseract库识别验证
2018/03/21 Python
Python使用pyautogui模块实现自动化鼠标和键盘操作示例
2018/09/04 Python
python 实现矩阵上下/左右翻转,转置的示例
2019/01/23 Python
美国婚礼礼品网站:MyWeddingFavors
2018/09/26 全球购物
整个世界的设计师家具在哈恩:Designathome
2019/03/25 全球购物
美国波西米亚风格精品店:South Moon Under
2019/10/26 全球购物
超市开业庆典策划方案
2014/05/14 职场文书
国家税务局领导班子对照检查材料思想汇报
2014/10/04 职场文书
设备技术员岗位职责
2015/04/11 职场文书
使用react-virtualized实现图片动态高度长列表的问题
2021/05/28 Javascript
使用canvas对video视频某一刻截图功能
2021/09/25 HTML / CSS
一篇文章看懂MySQL主从复制与读写分离
2021/11/07 MySQL
vue代码分块和懒加载非必要资源文件
2022/04/11 Vue.js
阿里云服务器Ubuntu 20.04上安装Odoo 15
2022/05/20 Servers