PyInstaller打包Spleeter GUI程序出现隐藏导入与AttributeError报错求助
解决方案
1 修复PyQt5相关AttributeError报错
你开发使用的是Tkinter框架,程序本身不依赖PyQt5,该报错由PyInstaller扫描到环境内安装的PyQt5、自动触发对应hook导致,可通过以下任意一种方法解决:
- 直接卸载环境内无用的PyQt5:
pip uninstall pyqt5
- 若需保留PyQt5,打包时添加参数跳过PyQt5扫描即可。
2 修复sklearn、TensorFlow相关隐藏导入警告
这类警告是因为TensorFlow、sklearn、Spleeter都存在大量动态导入逻辑,PyInstaller静态扫描无法识别全部依赖,按以下步骤处理:
- 先安装社区维护的PyInstaller预制hook库,已覆盖绝大多数科学计算、深度学习库的导入规则:
pip install pyinstaller-hooks-contrib
- 打包时手动补充剩余的隐藏导入参数,Windows下完整打包命令如下:
pyinstaller -D --exclude-module PyQt5 --hidden-import sklearn --hidden-import sklearn.utils._typedefs --hidden-import tensorflow.python.platform --hidden-import tensorflow.python._pywrap_tensorflow_internal --hidden-import spleeter --hidden-import spleeter.separator --hidden-import librosa --hidden-import numpy.core._methods helloworld.py
若打包后运行exe仍提示缺少某模块,直接将缺失的模块名追加到打包命令的
--hidden-import参数后即可。
其他注意事项
- Spleeter运行需要预训练模型,打包前请先在本地运行一次代码,将自动下载的
pretrained_models文件夹复制到打包生成的exe同级目录下,否则程序运行时会报错找不到模型。 - 打包后的程序首次启动速度较慢为TensorFlow初始化的正常现象。
内容的提问来源于stack exchange,提问作者StarGazerD
相关产品推荐
相关产品推荐

