如何使用pyinstaller打包python脚本?
那是2024年的春天,也就是一年前,我写了一篇文章,介绍“nuitka 打包exe简单教程”,有且仅有一位大佬
@白柳
评论了我,他说:
我用nuitka的module模式打成pyd,然后改了韦易笑那个 pystand让他支持pyd,然后每次更新只要编译一下pyd就行了。后面发展到分成一个bootstrap.pyd和src.pyd,src.pyd远程获取,bootstrap.pyd写一下网络加载src.pyd的代码,只要不加第三方库,永远只要编译一下src就行了。都不用做新安装包
我接触 nuitka 也就是2024年的时候,早期我也是使用 pyinstaller 打包 exe,但是 python3.8 以及之前的版本,打包 exe 都很容易破解出源代码,python3.9 稍微好一点但也能破解,python3.10 以及之后就比较安全了,说这话也是在2025年的前提下,没人能保证未来不会。因此,找到一个 python 一劳永逸的打包方法,一直是我的目标,直到 nuitka 的出现。
我使用 nuitka 打包 python,是因为必须要对技术的实现进行保密,nuitka 能把 python 编译成 pyd,类似把 c/c++ 编译成 dll 是一个道理的,2024年这个工具一直是小范围内使用,且一直没有升级的打算,说实话一直拿不到使用反馈。因此,并不是一款理想的小工具。所以,今年年初就想着好好大干一场,于是就有了文章开头的话题。
白柳大佬的玩法是自动更新,每次运行软件都会先从云端加载核心逻辑库src.pyd
,实现软件的自动更新。这种方式确实比较优秀,每次都能让用户使用最新版的功能,而我的小工具是GUI版本的,我是让用户手动点击“一键升级”按钮,然后从云端加载核心逻辑库(xxx.pyd
和资源文件),最后重启软件,实现软件的升级。
最后,总结一下我的 python打包 exe方案,python3.8 + nuitka + pystand,感谢
@韦易笑
大佬,我觉得这是当下最靠谱的 python打包exe方案,堪称完美。我的xxx.pyd
是不能直接反编译成 python 的,我的资源文件是 AES 加密的,我的云端是双向 SSL 认证的,我的升级是增量更新的。
已开启送礼物
编辑于 2025-03-15 14:31・江苏