在使用PyInstaller打包Python项目时,有时会遇到缺少依赖库的问题,比如Pillow这样的常见库。Pillow是Python中用于图像处理的库,如果项目中使用了Pillow,打包时缺失就会导致打包后的程序无法正常运行而闪退。
1 网上有很多人建议使用—hidden-import选项:
pyinstaller --hidden-import=PIL --hidden-import=Pillow your_script.py
2 或者修改spec文件,在 hiddenimports的括号中添加:‘PIL.ImageQt',
即 hiddenimports=['PIL.ImageQt'] ,我如此试过也是无效的。
后来改用 nuitka 打包,步骤如下:
1 安装:pip3 install nuitka
2 普通打包:普通打包 nuitka --standalone --onefile your_script.py
3 特色打包:使用了Tkinter库的GUI图形界面,则需要加上额外参数--enable-plugin=tk-inter:
nuitka --standalone --onefile --enable-plugin=tk-inter your_script.py
若使用了PILLOW库,打包快结束时会出现反臃肿提示:“Nuitka - Plugins:anti - bloat: Not including 'PIL.ImageQt' automatically in order to avoid bloat, but this may cause: PIL...,没有自动包含 PIL.ImageQt 模块,提示这样做可能会引发与 PIL相关的问题。按照提示处理最后顺利打包。
也有提示说:如果不介意打包后文件的大小,可以选择禁用 Nuitka 的反臃肿插件。可以使用 --plugin-disable=anti-bloat 选项来禁用该插件。示例命令如下:
python -m nuitka --standalone --plugin-disable=anti-bloat your_script.py
这样,Nuitka 就不会自动排除它认为可能会导致文件臃肿的模块,从而确保所有相关模块都被包含在打包文件中。
2611

被折叠的 条评论
为什么被折叠?



