Py2Exe for Python3 打包GUI程序生成exe完整指南

Oliver
Oliver
发布时间:2026-10-13| 6人浏览过
原创

本文详细介绍如何在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程序示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持本站。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。