如何将PyQt脚本(.py)编译成单个独立可执行文件(.exe)用于Windows和/或Linux?

68 投票
5 回答
117865 浏览
提问于 2025-04-16 17:00

我开始尝试使用PyQt,并根据pyqt白皮书中的示例应用程序做了一个“漂亮”的脚本(pastebin)。

这个脚本在Windows和Linux上都能完美运行(前提是这两个系统上都已经安装了qt环境)。

现在我想问的是:因为我想用Qt是因为它是编译过的(至少是基于纯老C++的Qt),那么我该如何把它编译成一个.exe文件,以便在Windows上运行,或者编译成一个独立的可执行文件在Linux上使用呢?

我想要程序是编译过的,主要是为了速度和便携性,而不是从源代码解释运行,这样的话在任何机器上都需要提前设置。例如,我的一个目标是通过电子邮件把小的图形界面脚本发送给那些根本不是程序员的同事。

5 个回答

4

你可以看看 cx_freeze。它声称可以创建“跨平台的可执行文件,应该能在任何Python能运行的平台上工作”。

我在探索 moneyGuru 这个包时发现了它,这个包使用了PyQt。我把moneyguru.exe文件下载到我的Windows XP系统上,运行后一切正常,适用于Python 3.2。

你可以从 这里 克隆hg代码库,看看是怎么做的。

25

经过几周的努力,尝试了很多不同的方法,比如 PyInstaller、py2exe、cx_freeze 等等,我最终自己做了一个库:https://build-system.fman.io/。这个库是基于 PyInstaller 的,但解决了很多常见的问题。它还可以让你在 Windows、Mac 和 Linux 上创建原生的安装程序。

71

如果你想要完全创建一个独立的可执行文件,可以试试PyInstaller。我觉得用它来创建独立的可执行文件比cx_freeze或py2exe要好(这是我的经验)。而且使用起来也很简单(网站上有完整的文档)。

它支持Python 3.6及更新版本。

如果你想创建一个完全独立的.exe文件,可以加上--onefile这个参数。比如:

pyinstaller.exe --onefile --windowed app.py

撰写回答