pyinstaller 打包遇到的坑
1. 获取文件路径异常
查看另一篇: https://blog.csdn.net/m0_60627063/article/details/139171184
2. 使用py文件作为配置文件异常
编写程序时, 使用settings.py文件作为配置文件, 打包时, 因为"“from settings import *”, 导致打包时, 一起将settings.py打包进去了, 所以不能使用py文件作为配置文件, 可以使用ini文件作为配置文件, 然后使用configparser模块读取配置文件
3. spec文件中datas填写
...
a = Analysis(
['main.py'],
pathex=['C:\\Users\\intern\\.virtualenvs\\python_code_voicetrigger-y2WbWbrA\Lib\\site-packages'],
binaries=[],
datas=[],
...
)
...
在spec文件中datas列表中的是需要额外添加的一些文件, 如果是py文件, 结合问题2, 可以知道,在项目中因为py文件的互相引入, 就没有必要写了(_)
4. 打包后执行时: 不支持请求 [WinError 50]
这是在使用os.popen异常, 可以使用subprocess.run解决
5. 打包文件过大
打包时, 生成的exe文件特别大, 可以从这几个方面考虑来减小exe文件
- 打包时, 可能将没必要的库文件一起打包进去了, 这里可使用创建一个虚拟环境, 单独配置三方库, 然后参考问题3中的spec文件, 修改库文件路径参数pathex, 指定配置库文件, 通过这个方式, 将一个exe文件缩小了10倍有余(_)
- 打包时, 使用pyinstaller -F xxx, 生成一个可执行文件夹