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数据类型转换函数总结
Mar 11 Python
进一步理解Python中的函数编程
Apr 13 Python
python做量化投资系列之比特币初始配置
Jan 23 Python
如何使用Python的Requests包实现模拟登陆
Apr 27 Python
Python通过调用有道翻译api实现翻译功能示例
Jul 19 Python
Python实例方法、类方法、静态方法的区别与作用详解
Mar 25 Python
opencv导入头文件时报错#include的解决方法
Jul 31 Python
Tensorflow不支持AVX2指令集的解决方法
Feb 03 Python
Python的pygame安装教程详解
Feb 10 Python
pycharm中导入模块错误时提示Try to run this command from the system terminal
Mar 26 Python
PyTorch 导数应用的使用教程
Aug 31 Python
python re模块和正则表达式
Mar 24 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快速url重写 更新版[需php 5.30以上]
2010/04/20 PHP
Zend Framework教程之Zend_Db_Table_Row用法实例分析
2016/03/21 PHP
理解php依赖注入和控制反转
2016/05/11 PHP
PHP生成可点击刷新的验证码简单示例
2016/05/13 PHP
CodeIgniter连贯操作的底层原理分析
2016/05/17 PHP
yii的入口文件index.php中为什么会有这两句
2016/08/04 PHP
laravel与thinkphp之间的区别与优缺点
2021/03/02 PHP
网站页面自动跳转实现方法PHP、JSP(上)
2010/08/01 Javascript
jQuery 阴影插件代码分享
2012/01/09 Javascript
用JavaScript修改CSS属性的代码
2013/05/06 Javascript
JavaScript在for循环中绑定事件解决事件参数不同的情况
2014/01/20 Javascript
JS实现具备延时功能的滑动门菜单效果
2015/09/17 Javascript
json定义及jquery操作json的方法
2016/10/03 Javascript
浅谈Webpack 是如何加载模块的
2018/05/24 Javascript
Ajax请求时无法重定向的问题解决代码详解
2019/06/21 Javascript
Vue解析带html标签的字符串为dom的实例
2019/11/13 Javascript
element-ui如何防止重复提交的方法步骤
2019/12/09 Javascript
vue+ElementUI 关闭对话框清空验证,清除form表单的操作
2020/08/06 Javascript
浅谈Python数据类型判断及列表脚本操作
2016/11/04 Python
基于python中pygame模块的Linux下安装过程(详解)
2017/11/09 Python
Python基于Hypothesis测试库生成测试数据
2020/04/29 Python
Python绘图之二维图与三维图详解
2020/08/04 Python
纯CSS3实现图片无间断轮播效果
2016/08/25 HTML / CSS
加拿大廉价机票预订网站:CheapOair.ca
2018/03/04 全球购物
荷兰手表网站:Watch2Day
2018/07/02 全球购物
学生个人求职自荐信格式
2013/09/23 职场文书
人事主管岗位职责范本
2013/12/04 职场文书
物业保安员岗位职责
2014/03/14 职场文书
意外伤害赔偿协议书范文
2014/09/23 职场文书
涉及车辆房产分割的离婚协议书范文
2014/10/12 职场文书
2014年团工作总结
2014/11/27 职场文书
旗帜观后感
2015/06/08 职场文书
PHP设计模式(观察者模式)
2021/07/07 PHP
sql通过日期判断年龄函数的示例代码
2021/07/16 SQL Server
前端实现滑动按钮AJAX与后端交互的示例代码
2022/02/24 Javascript
Python与C++中梯度方向直方图的实现
2022/03/17 Python