Pthon折腾之--Nuitka打包

引子

相较于简单易上手同样也易报毒易破解的Pyinstaller, Nuitka的功能更侧重于加速, 打包功能只是附带的福利。

先把搜集的两篇参考文列上来, 安装运行之类的这里不废话了:
nuitka使用参考, Python打包
当然更全面的还是直接看参数帮助:nuitka -h >read_nuitka.txt

总结一些常用参数

--full-compat 适配官方的嵌入式python-embed环境,强烈推荐
--plugin-enable=upx 启用upx压缩
--follow-imports 在嵌入式环境中等于把site-packages打包进exe文件
--nofollow-imports 对应的就是不打包任何依赖包进exe, 编译速度快, 也可以减少些问题
--windows-onefile-tempdir-spec=%TEMP%\someDir 配合单一文件模式--onefile使用,
指定临时解压路径
--file-reference-choice=runtime 需要读取程序运行路径下的文件时适用
--include-package=requests 等于单独把把site-packages中的requests打包进exe文件,
可以解决系列报错 requests - urllib3 - six - No module named http.client

用例&经验分享

功能单一的程序打包:
nuitka --mingw64 --follow-imports --full-compat --include-package=requests --plugin-enable=upx --windows-icon-from-ico=SOME.ico --output-dir=out SOME.py
或单文件方式:
nuitka --mingw64 --onefile --full-compat --include-package=requests --plugin-enable=upx --windows-icon-from-ico=SOME.ico --output-dir=out SOME.py
之所以加上--include-package=requests, 在我的用例中不加运行时会报错No module named xxx

多个功能exe分别编译,放到一个包中:
nuitka --mingw64 --nofollow-imports --full-compat --plugin-enable=upx --windows-icon-from-ico=SOME.ico --output-dir=out SOME.py
这样打包的文件体积几乎算是最小的,配合嵌入式python-embed环境运行, 可以替代--standalone参数, 达到同样的Portable(便携)效果。

编译模块为pyd:
nuitka --mingw64 --module --show-progress --full-compat --plugin-enable=upx --output-dir=out SOME.py

END

你可能感兴趣的:(Pthon折腾之--Nuitka打包)