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中请使用isinstance()判断变量类型
Aug 25 Python
Python实现图片滑动式验证识别方法
Nov 09 Python
python爬虫获取京东手机图片的图文教程
Dec 29 Python
python 给DataFrame增加index行名和columns列名的实现方法
Jun 08 Python
tensorflow saver 保存和恢复指定 tensor的实例讲解
Jul 26 Python
使用Python正则表达式操作文本数据的方法
May 14 Python
pyqt实现.ui文件批量转换为对应.py文件脚本
Jun 19 Python
python选取特定列 pandas iloc,loc,icol的使用详解(列切片及行切片)
Aug 06 Python
flask 使用 flask_apscheduler 做定时循环任务的实现
Dec 10 Python
Pytorch mask-rcnn 实现细节分享
Jun 24 Python
python 爬取吉首大学网站成绩单
Jun 02 Python
详解Python类和对象内容
Jun 22 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统计数组元素个数的方法
2015/07/02 PHP
php上传图片获取路径及给表单字段赋值的方法
2016/01/23 PHP
Yii核心验证器api详解
2016/11/23 PHP
PHP开发api接口安全验证操作实例详解
2020/03/26 PHP
找到一点可怜的关于dojo资料,谢谢作者!
2006/12/06 Javascript
在IE中调用javascript打开Excel的代码(downmoon原作)
2007/04/02 Javascript
ArrayList类(增强版)
2007/04/04 Javascript
抽出www.templatemonster.com的鼠标悬停加载大图模板的代码
2007/07/11 Javascript
一个基于jQuery的树型插件(OrangeTree)使用介绍
2012/05/03 Javascript
UI Events 用户界面事件
2012/06/27 Javascript
js动态添加onload、onresize、onscroll事件(另类方法)
2012/12/26 Javascript
3种不同方式的焦点图轮播特效分享
2013/10/30 Javascript
JavaScript中数组成员的添加、删除介绍
2014/12/30 Javascript
jQuery制作效果超棒的手风琴折叠菜单
2015/04/03 Javascript
JavaScript文本框脚本编写的注意事项
2016/01/25 Javascript
限制只能输入数字的实现代码
2016/05/16 Javascript
详解Angualr 组件间通信
2017/01/21 Javascript
详解React中的组件通信问题
2017/07/31 Javascript
js数组实现权重概率分配
2017/09/12 Javascript
深入掌握 react的 setState的工作机制
2017/09/27 Javascript
jQuery 实现左右两侧菜单添加、移除功能
2018/01/02 jQuery
react 创建单例组件的方法
2018/04/26 Javascript
JS前端知识点总结之页面加载事件,数组操作,DOM节点操作,循环和分支
2019/07/04 Javascript
通过实例了解Nodejs模块系统及require机制
2020/07/16 NodeJs
node使用async_hooks模块进行请求追踪
2021/01/28 Javascript
[01:08]DOTA2次级职业联赛 - Shield战队宣传片
2014/12/01 DOTA
python无限生成不重复(字母,数字,字符)组合的方法
2018/12/04 Python
tensorflow 变长序列存储实例
2020/01/20 Python
Pytest参数化parametrize使用代码实例
2020/02/22 Python
Python3.9.0 a1安装pygame出错解决全过程(小结)
2021/02/02 Python
6号汽车旅馆预订:Motel 6
2018/02/11 全球购物
医学专业五年以上个人求职信
2013/12/03 职场文书
党员示范岗材料
2014/12/19 职场文书
总经理助理岗位职责范本
2015/03/31 职场文书
MySQL数据库索引的最左匹配原则
2021/11/20 MySQL
python编程学习使用管道Pipe编写优化代码
2021/11/20 Python