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里使用正则的findall函数的实例详解
Oct 19 Python
Python DataFrame 设置输出不显示index(索引)值的方法
Jun 07 Python
python 重命名轴索引的方法
Nov 10 Python
用Python PIL实现几个简单的图片特效
Jan 18 Python
详解numpy的argmax的具体使用
May 27 Python
python自动结束mysql慢查询会话的实例代码
Oct 27 Python
Python hashlib模块实例使用详解
Dec 24 Python
Pytorch 卷积中的 Input Shape用法
Jun 29 Python
python3 中使用urllib问题以及urllib详解
Aug 03 Python
10款最佳Python开发工具推荐,每一款都是神器
Oct 15 Python
Python列表元素删除和remove()方法详解
Jan 04 Python
Python 图片添加美颜效果
Apr 28 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/29 PHP
PHP实现下载远程图片保存到本地的方法
2017/06/19 PHP
ubutu 16.04环境下,PHP与mysql数据库,网页登录验证实例讲解
2017/07/20 PHP
PHP注释语法规范与命名规范详解篇
2018/01/21 PHP
PHP中常见的密码处理方式和建议总结
2018/10/14 PHP
javaScript(JS)替换节点实现思路介绍
2013/04/17 Javascript
实现动画效果核心方式的js代码
2013/09/27 Javascript
一个简单的jquery进度条示例
2014/04/28 Javascript
详解JavaScript对W3C DOM模版的支持情况
2015/06/16 Javascript
jquery+正则实现统一的表单验证
2015/09/20 Javascript
jQuery插件imgPreviewQs实现上传图片预览
2016/01/15 Javascript
js将table的每个td的内容自动赋值给其title属性的方法
2016/10/13 Javascript
js实现图片左右滚动效果
2017/02/27 Javascript
JQuery 进入页面默认给已赋值的复选框打钩
2017/03/23 jQuery
快速将Vue项目升级到webpack3的方法步骤
2017/09/14 Javascript
Node.js中Bootstrap-table的两种分页的实现方法
2017/09/18 Javascript
使用Bootrap和Vue实现仿百度搜索功能
2017/10/26 Javascript
通过一个简单的例子学会vuex与模块化
2017/11/22 Javascript
vue2.0模拟锚点的实例
2018/03/14 Javascript
[01:56]生活中的妖精之七夕特别档
2016/08/09 DOTA
python 简单的多线程链接实现代码
2016/08/28 Python
Python创建xml文件示例
2017/03/22 Python
selenium3+python3环境搭建教程图解
2018/12/07 Python
在python中实现求输出1-3+5-7+9-......101的和
2020/04/02 Python
python实现将列表中各个值快速赋值给多个变量
2020/04/02 Python
python3.6使用SMTP协议发送邮件
2020/05/20 Python
通过Python pyecharts输出保存图片代码实例
2020/11/25 Python
python通过cython加密代码
2020/12/11 Python
CSS3 旋转立方体问题详解
2020/01/09 HTML / CSS
美国二手奢侈品寄售网站:TheRealReal
2016/10/29 全球购物
Becextech新西兰:数码单反相机和手机在线商店
2018/04/27 全球购物
美国时尚假发购物网站:Wigsbuy
2019/04/06 全球购物
公司领导班子对照材料
2014/08/18 职场文书
2015年医生个人工作总结
2015/04/25 职场文书
勤俭节约倡议书范文
2015/04/29 职场文书
深入浅出讲解Java8函数式编程
2022/01/18 Java/Android