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 相关文章推荐
一则python3的简单爬虫代码
May 26 Python
Python中的闭包实例详解
Aug 29 Python
python3.6.3+opencv3.3.0实现动态人脸捕获
May 25 Python
python rsync服务器之间文件夹同步脚本
Aug 29 Python
Python的缺点和劣势分析
Nov 19 Python
Python模块 _winreg操作注册表
Feb 05 Python
详解python itertools功能
Feb 07 Python
python线程里哪种模块比较适合
Aug 02 Python
Python内置函数property()如何使用
Sep 01 Python
Selenium 安装和简单使用的实现
Dec 04 Python
浅谈python中的多态
Jun 15 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中session过期时间设置及session回收机制介绍
2014/05/05 PHP
php 伪造HTTP_REFERER页面URL来源的三种方法
2016/09/22 PHP
javascript函数定义的几种区别小结
2014/01/06 Javascript
JS获取单击按钮单元格所在行的信息
2014/06/17 Javascript
超级简单的jquery操作表格方法
2014/12/15 Javascript
jQuery实现分章节锚点“回到顶部”动画特效代码
2015/10/23 Javascript
基于javascript制作经典传统的拼图游戏
2016/03/22 Javascript
JS中substring与substr的用法
2016/11/16 Javascript
ionic进入多级目录后隐藏底部导航栏(tabs)的完美解决方案
2016/11/23 Javascript
通过jsonp获取json数据实现AJAX跨域请求
2017/01/22 Javascript
webpack学习教程之前端性能优化总结
2017/12/05 Javascript
Vue组件全局注册实现警告框的实例详解
2018/06/11 Javascript
JavaScript简单实现动态改变HTML内容的方法示例
2018/12/25 Javascript
Vue 表情包输入组件的实现代码
2019/01/21 Javascript
JavaScript 链表定义与使用方法示例
2020/04/28 Javascript
详解vue父子组件状态同步的最佳方式
2020/09/10 Javascript
[56:00]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第二场
2018/04/10 DOTA
浅谈python中的变量默认是什么类型
2016/09/11 Python
详解python进行mp3格式判断
2016/12/23 Python
python的Crypto模块实现AES加密实例代码
2018/01/22 Python
浅谈flask源码之请求过程
2018/07/26 Python
Python英文文本分词(无空格)模块wordninja的使用实例
2019/02/20 Python
python单例设计模式实现解析
2020/01/07 Python
Python实现仿射密码的思路详解
2020/04/23 Python
python安装sklearn模块的方法详解
2020/11/28 Python
瑞士首家网上药店折扣店:McDrogerie
2020/12/22 全球购物
财务管理专业应届毕业生求职信
2013/09/22 职场文书
写给老师的表扬信
2014/01/21 职场文书
家长会欢迎标语
2014/06/24 职场文书
大学生第一学年自我鉴定2015
2014/09/28 职场文书
2015年医院护理部工作总结
2015/04/23 职场文书
亲戚关系证明
2015/06/24 职场文书
离婚民事起诉状
2015/08/03 职场文书
2015年教师节广播稿
2015/08/19 职场文书
2016年入党心得体会范文
2016/01/23 职场文书
python实现图片九宫格分割的示例
2021/04/25 Python