说实话 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)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/pythonbc/61301.html