我使用以下命令创建了大型 python 脚本的 exe 文件 -
pyinstaller gui_final.py --onefile --hidden-import=sklearn --hidden-import=ipaddress --hidden-import=PIL --hidden-import=pickle --hidden-import=shutil --hidden-import=joblib
exe 文件工作正常,直到我使用 JOBLIB 加载决策树模型文件 (dtree.joblib)。
clf = joblib.load("dtree.joblib")
弹出以下错误 - 这是终端中的完整错误:
ModuleNotFoundError: No module named 'sklearn.ensemble._weight_boosting'
我尝试按照
this答案中的步骤将
sklearn.ensemble
和sklearn.ensemble._weight_boostin
添加到exe的规范文件中来更新hidden_imports。下面也给出了步骤
from PyInstaller.utils.hooks import collect_submodules
hidden_imports = collect_submodules('sklearn.ensemble') #('sklearn.ensemble._weight_boosting')
a = Analysis(['gui_final.py'],
binaries=None,
datas=[],
hiddenimports=hidden_imports,
.
.
通过运行命令:
pyinstaller gui_final.spec
但运行 exe 后仍然遇到与之前相同的 ModuleNotFoundError。
我尝试使用 pyinstaller 查看有关 joblib 的一些问题,但没有找到任何合适的问题或解决方案。
任何人都可以建议使脚本的 exe 可运行的步骤吗?