Py2Exe for Python3 打包GUI程序生成exe完整指南
本文详细介绍如何在Python 3环境下使用Py2Exe将GUI程序打包为Windows可执行文件。涵盖Anaconda环境下的手动安装步骤,对比setup.py与build_exe命令行两种打包方式,并重点解决运行exe时附带控制台窗口的常见问题,提供去除控制台背景的完整解决方案。
近期使用Python 3.5开发了一款图形界面(GUI)小程序,计划将其发布为独立的exe文件,以便在本地单独运行。关于通过安装包形式分发的具体方式,本文未作深入探讨,感兴趣的读者可自行研究。
1 介绍
开发环境基于Python 3.4(实际开发使用的是另一台64位台式机上的Python 3.5,但代码无需任何修改即可兼容Python 3.4),该环境由Anaconda提供。开发的GUI软件名为mergeDocGui,功能完整且已调试通过,目前正转换为可直接使用的exe格式,以便在Windows操作系统下运行。该程序的功能设计与Windows操作系统紧密相关。
1.1 Py2Exe介绍及其安装
Py2Exe for Python3是一个distutils扩展库,用于创建Python 3程序在Windows下的可执行文件(支持32位和64位);它仅支持Python 3.3及更高版本。利用它可以生成命令行可执行程序、Windows GUI可执行程序、Windows服务以及DLL/EXE COM服务器等。
由于Python 3的C运行时库机制,在使用Py2Exe创建Python 3可执行程序时,无需编写manifest文件。
经评估,使用Py2Exe完全符合我的需求。
软件mergeDocGui基于Python 3环境编写,因此必须安装针对Python 3版本的Py2Exe。Anaconda套件默认未包含Py2Exe,需手动安装。在Anaconda环境的Python 3中安装Py2Exe,可执行以下命令:

安装完成后,可通过以下命令验证是否安装成功:

2 创建exe方法
除了常用的创建setup.py脚本的方法外,Py2Exe还提供了一款名为build_exe的命令行工具,可帮助用户轻松直接地创建exe文件。
由于我的程序主要包含一个mergeDocGui.py文件,因此直接使用build_exe命令即可。根据Py2Exe for Python3提供的build_exe帮助文档,或通过命令build_exe -h查看帮助,我使用了以下命令来创建自己的exe文件:

首先需确保Python程序位于当前文件夹中。从上图可以看出,exe文件创建失败。选项-b用于指定bundle文件的级别,具体含义请参阅帮助文档。失败原因明确指出需要最小的bundle级别为2,因此我将bundle文件的级别调整为2:

此次创建成功。立即在当前文件夹下找到dist文件夹,其内容如下:

我迫不及待地运行mergeDocGui.exe程序,发现一个不足之处:程序启动时总会附带一个控制台背景窗口,如下图所示:

为解决上述问题,我查阅了py2exe 0.9.2.0的帮助文档,并采用了通常先编写setup.py脚本的方法:
from distutils.core import setup import py2exe setup(windows=['mergeDocGui.py'])
随后在当前目录下输入以下命令:

最后,打开dist文件夹中的mergeDocGui.exe,发现附带的console窗口已经消失。
至于如何通过build_exe命令直接使console窗口消失,待我闲暇时再行探索。
3 总结
本文讨论了py2Exe在python3环境中的安装方法,以及如何将编写的Gui程序(通过tkinter)转换为可在Windows环境下运行的exe程序。这为非程序员使用程序提供了极大的便利。至于程序员,由于直接面向代码即可,故无需过多关注此过程。
以上这篇使用Py2Exe for Python3创建自己的exe程序示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持本站。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









