pyinstaller使用注意事项

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