服务器之家

服务器之家 > 正文

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

时间:2021-04-15 00:08     来源/作者:阿智智

最近使用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脚本的方法:

?
1
2
3
4
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程序示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/RobertChenGuangzhi/article/details/53572205

标签:

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
Intellij idea2020永久破解,亲测可用!!!
Intellij idea2020永久破解,亲测可用!!! 2020-07-29
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
返回顶部