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 相关文章推荐
详解duck typing鸭子类型程序设计与Python的实现示例
Jun 03 Python
Python中Threading用法详解
Dec 27 Python
Python3标准库总结
Feb 19 Python
Django对models里的objects的使用详解
Aug 17 Python
Python操作SQLite数据库过程解析
Sep 02 Python
Python @property使用方法解析
Sep 17 Python
python将字符串转变成dict格式的实现
Nov 18 Python
numpy.ndarray 实现对特定行或列取值
Dec 05 Python
python学习将数据写入文件并保存方法
Jun 07 Python
Python如何发送与接收大型数组
Aug 07 Python
详解如何在PyCharm控制台中输出彩色文字和背景
Aug 17 Python
Pytorch实验常用代码段汇总
Nov 19 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调用MsSQL存储过程使用内置RETVAL获取过程中的return值
2013/07/03 PHP
单台服务器的PHP进程之间实现共享内存的方法
2014/06/13 PHP
Laravel 5 框架入门(一)
2015/04/09 PHP
php正则表达式学习笔记
2015/11/13 PHP
Yii框架实现对数据库的CURD操作示例
2019/09/03 PHP
PHP项目多语言配置平台实现过程解析
2020/05/18 PHP
php连接mysql之mysql_connect()与mysqli_connect()的区别
2020/07/19 PHP
基于Jquery 解决Ajax请求的页面 浏览器后退前进功能,页面刷新功能实效问题
2010/12/11 Javascript
JavaScript高级程序设计(第3版)学习笔记13 ECMAScript5新特性
2012/10/11 Javascript
12款经典的白富美型—jquery图片轮播插件—前端开发必备
2013/01/08 Javascript
angularJS 中input示例分享
2015/02/09 Javascript
JavaScript面向对象的实现方法小结
2015/04/14 Javascript
JS处理json日期格式化问题
2015/10/01 Javascript
用原生js统计文本行数的简单示例
2016/08/19 Javascript
jQuery操作json常用方法示例
2017/01/04 Javascript
微信小程序实战之运维小项目
2017/01/17 Javascript
详解Vue.use自定义自己的全局组件
2017/06/14 Javascript
详解基于vue的移动web app页面缓存解决方案
2017/08/03 Javascript
JS非空验证及邮箱验证的实例
2017/08/11 Javascript
NodeJS服务器实现gzip压缩的示例代码
2018/10/12 NodeJs
JS实现随机生成10个手机号的方法示例
2018/12/07 Javascript
Windows下支持自动更新的Electron应用脚手架的方法
2018/12/24 Javascript
Vue框架TypeScript装饰器使用指南小结
2019/02/18 Javascript
详解微信小程序实现跑马灯效果(附完整代码)
2019/04/29 Javascript
介绍Python中的__future__模块
2015/04/27 Python
python使用mysql数据库示例代码
2017/05/21 Python
Android分包MultiDex策略详解
2017/10/30 Python
Python中一些深不见底的“坑”
2019/06/12 Python
numpy ndarray 取出满足特定条件的某些行实例
2019/12/05 Python
Python实现子类调用父类的初始化实例
2020/03/12 Python
对python中return与yield的区别详解
2020/03/12 Python
微软中国官方旗舰店:销售Surface、Xbox One、笔记本电脑、Office
2018/07/23 全球购物
中专自我鉴定范文
2013/10/16 职场文书
经贸日语专业自荐信
2014/09/02 职场文书
先进教师个人总结
2015/02/11 职场文书
2019最新婚庆对联集锦!
2019/07/10 职场文书