pyinstaller使用注意事项
- 当对多模块脚本进行打包的时候,需要对界面入口进行打包,同时该脚本名称得符合一定的规范,如果名字是类似
__init__.py,打包的时候大概率会出现问题,无法打包
- 使用pyinstaller打包的时候建议要么在虚拟环境中打包,要么单独创建一个虚拟机打包,这样相对来说体积可以相对小一点,否则在安装了一大堆的python模块的环境中打包,很有可能连打包都不一定成功
- 原以为使用upx可以减少一定的体积(虽然确实可以做到),但是这次打包的时候发现有的时候用上upx会带来一些额外的麻烦,就比如使用了upx压缩后,无法在Windows 7系统运行,而去掉了upx,反而还能正常运行,迷惑
- 还有是否使用upx,还需要做好权衡,因为一旦引入了upx,就更容易导致加载速度变慢,所以如果对加载速度要求不是太高,对软件体积要求有些高,倒可以考虑引入upx,如果既要速度,又要体积,那可以考虑nuitka
- 打包之后一定得多测试!!!这次自己在python 3.10.5环境中编写脚本,之后在python 3.8上进行打包,结果3.10解释器打包后的程序在Windows 8.1平台运行会出现一些问题,python 3.8虽然可以支持Windows 7,但是最好要在Windows 7系统上打包,如果在Windows 10上打包,很容易无法在Windows 7运行,有些无语
- 还有一个头疼的问题,就是虽然官方说python3.8是支持Windows 7的,结果在安装的时候出现一堆问题,还得安装一个补丁才行,Windows 8.1也需要安装补丁,用之前一定得注意啊!
- 如果需要安全的保护源码不会被反编译,个人建议优先考虑采用nuitka打包,其次采用pyinstaller的
--key参数,至于有人说可以采用pyinstaller+cython,目前测试不行,除非不公开源码,否则可以直接调用cython打包的pyd文件引库调包