当前位置:网站首页 > Python编程 > 正文

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



说实话 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 是一样的。

到此这篇python将py文件编译成exe文件(python如何编译成exe)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • pivot函数 python报错out of bound(python中pivot()函数的用处)2025-02-19 11:54:10
  • python服务部署(py部署到服务器)2025-02-19 11:54:10
  • python函数代码大全(python函数csdn)2025-02-19 11:54:10
  • onnx模型部署 python(onnx模型部署arm板)2025-02-19 11:54:10
  • CNN神经网络降噪(python神经网络音频降噪处理)2025-02-19 11:54:10
  • python函数返回多个参数(python3返回多个值)2025-02-19 11:54:10
  • 服务器配置pytorch环境(服务器配置python环境)2025-02-19 11:54:10
  • python中如何向字典中添加删除元素(python中如何向字典中添加删除元素的值)2025-02-19 11:54:10
  • python函数没有return,返回什么(python函数可以没有return语句,不返回值)2025-02-19 11:54:10
  • python 没有return返回none(python没有return返回什么)2025-02-19 11:54:10
  • 全屏图片