如何将Python脚本打包为无需依赖的独立可执行文件?

1083 投票
19 回答
1655300 浏览
提问于 2025-04-16 14:34

我正在开发一个Python应用程序,但不想让我的客户去安装Python和相关的模块。

那么,有没有办法把Python脚本编译成一个独立的可执行文件呢?

19 个回答

121

你可以看看 Nuitka。它的工作原理是把Python的源代码转换成C++的API调用。然后再把这些调用编译成可以直接运行的程序(在Linux上是ELF格式)。这个工具已经存在好几年了,支持很多不同版本的Python。

如果你使用它,可能还会提高程序的运行速度。推荐试试。

579

你可以使用 PyInstaller 来把 Python 程序打包成独立的可执行文件。它可以在 Windows、Linux 和 Mac 上运行。

PyInstaller 快速入门

从 PyPI 安装 PyInstaller:

pip install pyinstaller

进入你程序所在的文件夹,然后运行:

pyinstaller yourprogram.py

这会在一个叫 dist 的子文件夹中生成打包好的文件。

pyinstaller -F yourprogram.py

如果你加上 -F(或者 --onefile)这个参数,所有内容会打包成一个单独的 "exe" 文件。

pyinstaller -F --paths=<your_path>\Lib\site-packages  yourprogram.py

如果遇到 "ImportError" 错误,你可能需要考虑一下依赖包的问题。

 pip install pynput==1.6.8

如果还是出现 ImportError 错误,可以尝试降级 PyInstaller,具体可以参考 使用 pynput 和 pyinstaller 时遇到错误

想要更详细的操作步骤,可以查看 手册

302

你可以使用py2exe,正如之前提到的那样,另外还可以用Cython把你的关键代码文件(.py文件)转换成.pyc文件,也就是编译后的文件。像Windows系统里的.dll文件和Linux系统里的.so文件。

这种转换比普通的.pyo和.pyc文件更难以恢复(而且性能也会有所提升!)。

撰写回答