python将py文件编译成exe文件(python如何编译成exe)

python将py文件编译成exe文件(python如何编译成exe)说实话 Pyinstaller 挺坑的 只能用命令行 F 模式启动慢 D 模式 exe 混在一堆文件中间很难找 有一个叫 auto py to exe 好像 的 有个界面 本质上是更好操作的 Pyinstaller 那问题是一样的 py2exe 没试过 据说还可以 但是也有问题 Nuitka 据说也不错 我没有深入研究 毕竟比较复杂 因为没自己用所以不好评价 但看别人说的好像比上面的好

大家好,我是讯享网,很高兴认识大家。



说实话 Pyinstaller 挺坑的,只能用命令行,-F 模式启动慢,-D 模式 .exe 混在一堆文件中间很难找。有一个叫 auto py to exe(好像)的,有个界面,本质上是更好操作的 Pyinstaller,那问题是一样的。py2exe 没试过,据说还可以,但是也有问题。

Nuitka 据说也不错,我没有深入研究,毕竟比较复杂。因为没自己用所以不好评价,但看别人说的好像比上面的好。

Cx_Freeze也很复杂,我在用这个,不但自动检测使用的库,而且依赖文件的添加也很简单,打包速度快,cx_Freeze 本身是跨平台的,也就是说在 Windows 下打包用的 setup.py 在其他系统也能用(基于系统特性会稍有差别,我只知道 Windows 下的 ‘Win32GUI’ 在其他系统不可用,这是 Win 下打包 GUI 用的,换系统时不写这个字符串就行)。

Cx_Freeze 还可以打包成 .msi 安装包,这点也很好。

使用上既有方便的 cx_freeze-quickstart.exe,又有详细配置 setup.py,后者可以同时打包多个 exe,也不用在命令行里对着一行命令看半天了。

在 github 有 cx_Freeze 打包的详细示例,列举了打包普通模块、压缩包、安装包、设置程序图标、打包 tkinter, pyqt, wx、打包 matplotlib, PIL, opencv 等库(其实打包第三方库没有特殊的,写法一样)。

一个简单的 setup.py 例子:

from cx_Freeze import setup, Executable


讯享网

setup(

name=‘spam’,

author=‘John Doe’,

description=‘A simple executable’,

executables=[Executable(‘spam.py’, icon=‘icon.ico’, base=‘Win32GUI’)],

options={

‘build_exe’: {‘include-msvcr’: True}

},

)

然后命令行:

(env) C:…>setup.py build

等着大概半分钟后结束就行。

打包结果的文件结构:

/

- 源文件(可能有多个,可能有文件夹)

- setup.py(你自己配置的)

- build/

- exe.{系统, py版本, CPU 架构}/

- lib/(对应 PYTHON/Lib)

- xxx.exe

- python3x.dll

- vcruntime140.dll(如果 setup 时 include_msvcr 键的值是 True 则有)

- vcruntime140_1.dll(同上)

是不是很清爽?

唯一的问题就是文件夹比较大,pyinstaller -F 9个 MiB 的事情它可能要 二十多 MiB,都是 lib 里面的,如果没有用可以删掉一些,但是标准库有些是必须的。最后能删到二十不到一点。

速度上,和直接运行 Python 是一样的。

小讯
上一篇 2025-04-18 13:23
下一篇 2025-06-12 17:35

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/207748.html