使用Py2Exe for Python3创建自己的exe程序示例


Posted in Python onOctober 31, 2018

最近使用Python 3.5写了一个GUI小程序,于是想将该写好的程序发布成一个exe文件,供自己单独使用。至于通过安装的方式使用该程序,我没有探索,感兴趣的读者可以自己摸索。

1 介绍

我使用的开发环境是python3.4(实际上我是在另一个64位的台式机上,用python3.5开发的,不过代码不用任何修改即可在python3.4上运行),该环境由Anaconda提供。我开发的小GUI软件为mergeDocGui,该程序功能完备,调试通过,等待转成直接使用的exe程序,以在Windows操作系统下使用。它所提供的功能也是与Windows操作系统紧密联系在一起的。

1.1 Py2Exe介绍及其安装

py2exe for Python3 是一个distutils扩展,可以用来创建python3程序的Windows下的可执行程序(32-bit 和 64-bit);它只能支持Python3.3及以后的版本。用它可以创建命令行下的可执行程序、Windows GUI可执行程序、Windows服务和DLL/EXE COM服务器等。

由于Python3的C运行时库,使得我们在利用Py2Exe创建Python3的可执行程序时,不用写manifest文件。

我发现使用Py2Exe正好符合需求。

软件mergeDocGui是在Python3环境下编写的,因此只能安装针对Python3的Py2Exe。Anaconda套件默认没有安装Py2Exe,需要我们手动安装Py2Exe。在Anaconda环境中的Python3中安装Py2Exe使用如下命令即可:

使用Py2Exe for Python3创建自己的exe程序示例

安装成功后,你可使用如下命令,看是否安装成功:

使用Py2Exe for Python3创建自己的exe程序示例

2 创建exe方法

除了常用的创建setup.py方法外,Py2Exe还提供了一个命令行下的工具build_exe,让你不费力地直接创建exe文件。

因为我的程序主要为一个mergeDocGui.py文件,所有使用build_exe即可。根据Py2Exe for Python3提供的build_exe使用帮助,或者你自己通过命令build_exe -h查看帮助,我使用如下命令创建自己的exe文件:

使用Py2Exe for Python3创建自己的exe程序示例

当然,首先要保证Python程序在当前文件夹中。在上图中我们可以看出创建exe文件失败。选项-b表示bundle文件的级别,具体含义请参见帮助。失败原因说的很清楚,需要最小的级别为2,于是我调整bundle文件的级别为2:

使用Py2Exe for Python3创建自己的exe程序示例

我们发现创建成功。立刻在当前文件夹下找到dist文件夹,里面内容如下:

使用Py2Exe for Python3创建自己的exe程序示例

我亟不可待的运行mergeDocGui.exe程序,发现一个不太好的地方,就是总是会带出来一个console背景,如下:

使用Py2Exe for Python3创建自己的exe程序示例

为了解决上述问题,我参阅了py2exe 0.9.2.0的帮助文档。我采用了通常的先编写setup.py脚本的方法:

from distutils.core import setup
import py2exe

setup(windows=['mergeDocGui.py'])

然后再在当前目录下输入一下命令:

使用Py2Exe for Python3创建自己的exe程序示例

最后,我打开dist文件夹中的mergeDocGui.exe,发现附带的console窗口已经消失了。

至于通过build_exe命令如何让console窗口消失,等我闲暇的时候再来探索。

3 总结

本文谈论了py2Exe在python3环境中的安装方法,和如何将自己编写的Gui程序(通过tkinter)转换成可在Windows环境下运行的exe程序。这为非程序员使用程序提供极大的便利。至于程序员,由于是程序员吗,直接面向代码就可以了。

以上这篇使用Py2Exe for Python3创建自己的exe程序示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python类装饰器用法实例
Jun 04 Python
结合Python的SimpleHTTPServer源码来解析socket通信
Jun 27 Python
Python实现八大排序算法
Aug 13 Python
Python简单的制作图片验证码实例
May 31 Python
python代码实现ID3决策树算法
Dec 20 Python
python3下使用cv2.imwrite存储带有中文路径图片的方法
May 10 Python
Python实现的拟合二元一次函数功能示例【基于scipy模块】
May 15 Python
Python利用sqlacodegen自动生成ORM实体类示例
Jun 04 Python
Django-xadmin后台导入json数据及后台显示信息图标和主题更改方式
Mar 11 Python
python:删除离群值操作(每一行为一类数据)
Jun 08 Python
python脚本定时发送邮件
Dec 22 Python
python如何实现递归转非递归
Feb 25 Python
python打包生成的exe文件运行时提示缺少模块的解决方法
Oct 31 #Python
python实现多进程代码示例
Oct 31 #Python
Python UnboundLocalError和NameError错误根源案例解析
Oct 31 #Python
python多进程控制学习小结
Oct 31 #Python
在Python中实现替换字符串中的子串的示例
Oct 31 #Python
python创建文件时去掉非法字符的方法
Oct 31 #Python
python3 中文乱码与默认编码格式设定方法
Oct 31 #Python
You might like
php mssql 数据库分页SQL语句
2008/12/16 PHP
一个PHP的QRcode类与大家分享
2011/11/13 PHP
php文件包含的几种方式总结
2019/09/19 PHP
Javascript实现的分页函数
2006/12/22 Javascript
javascript 表格排序和表头浮动效果(扩展SortTable)
2009/04/07 Javascript
超越Jquery_01_isPlainObject分析与重构
2010/10/20 Javascript
JS对字符串编码的几种方式使用指南
2015/05/14 Javascript
JavaScript中用sort()方法对数组元素进行排序的操作
2015/06/09 Javascript
angularjs学习笔记之三大模块(modal,controller,view)
2015/09/26 Javascript
深入理解js中this的用法
2016/05/28 Javascript
Vue-router 中hash模式和history模式的区别
2018/07/24 Javascript
浅谈JS中this在各个场景下的指向
2019/08/14 Javascript
在layui中layer弹出层点击事件无效的解决方法
2019/09/05 Javascript
Python列表生成器的循环技巧分享
2015/03/06 Python
Python 包含汉字的文件读写之每行末尾加上特定字符
2016/12/12 Python
Python字典数据对象拆分的简单实现方法
2017/12/05 Python
利用python编写一个图片主色转换的脚本
2017/12/07 Python
python微信跳一跳系列之棋子定位像素遍历
2018/02/26 Python
详解python编译器和解释器的区别
2019/06/24 Python
python小程序实现刷票功能详解
2019/07/17 Python
Pytorch 抽取vgg各层并进行定制化处理的方法
2019/08/20 Python
wxPython实现画图板
2020/08/27 Python
关于HTML5的22个初级技巧(图文教程)
2012/06/21 HTML / CSS
使用canvas绘制超炫时钟
2014/12/17 HTML / CSS
魔声耳机官方网站:Monster是世界第一品牌的高性能耳机
2016/10/26 全球购物
Talbots官网:美国成熟女装品牌
2019/11/15 全球购物
加工操作管理制度
2014/01/19 职场文书
运动会稿件200字
2014/02/07 职场文书
国土资源局开展党的群众路线教育实践活动整改措施
2014/09/26 职场文书
报到证办理个人委托书
2014/10/06 职场文书
情人节单身感言
2015/08/03 职场文书
2019年暑期安全广播稿!
2019/07/03 职场文书
母婴行业实体、电商模式全面解析
2019/08/01 职场文书
抖音动画片,皮皮虾,《治愈系》动画在用这首REMIX作为背景音乐,Anak ,The last world with you完整版
2022/03/16 杂记
原生JS实现分页
2022/04/19 Javascript
Win11怎么添加用户?Win11添加用户账户的方法
2022/07/15 数码科技