Pyinstaller 和 sklearn.ensemble: 'ModuleNotFoundError: No module named 'sklearn.neighbors.quad_tree



我在pyqt5中写了一个GUI,其中包括该行 from sklearn.ensemble import RandomForestClassifier

按照此答案的建议,在Anaconda3Libsite-packagesPyInstallerhooks中,我添加了一个名为hook-pandas.py的文件,其中包含以下内容:

hiddenimports = ['pandas._libs.tslibs.timedeltas', 'sklearn.neighbors.typedefs']

之后,我尝试了运行 pyinstaller -F visual_vitals.py --hidden-import sklearn.neighbors.typedefs在Anaconda提示中。

但是,我有错误 RecursionError: maximum recursion depth exceeded

如果,另一方面,我只是跑步`pyinstaller visual_vitals.py'

然后,.exe正确构建,当我尝试运行它时,我会收到消息 modulenotfounderror: no module named 'sklearn.neighbors.quad_tree'

我该怎么办?

请注意,如果我使用支持向量分类器而不是随机森林,那么问题就会消失,因此该问题是特定于该分类器的,而不是整个sklearn

我遇到了Sklearn和pyinstaller的同一问题。

这是我解决的方式:

1.(使用命令:

> pyi-makespec -F visual_vitals.py

2。(这将通过名称vital.spec

创建一个文件

3.(找到

的行
> hidden imports=[]

在规格文件中。

替换
> hiddenimports = ['pandas._libs.tslibs.timedeltas',
>                  'sklearn.neighbors.typedefs']

4.(添加这两条线以增加规格文件开始时的递归限制

> import sys 
> 
> sys.setrecursionlimit(5000)

5.(运行:

> pyinstaller visual_vitals.spec

希望这可以帮助任何拥有

的人
`ModuleNotFoundError: No module named 'sklearn.*'`
`ModuleNotFoundError: No module named 'h5py.*'`

在构建pyinstaller期间或之后

示例如果您收到h5py

的错误

运行pyinstaller myscript.py后,生成了myscript.spec

进入myscript.spec

进入
# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
a = Analysis(['myscript.py'],
         binaries=None,
         datas=[],
         hiddenimports=[],
         hookspath=[],
         runtime_hooks=[],
         excludes=[],
         win_no_prefer_redirects=False,
         win_private_assemblies=False,
         cipher=None)
# ... rest of a file untouched

添加

from PyInstaller.utils.hooks import collect_submodules
hidden_imports = collect_submodules('h5py')

hiddenimports=hidden_imports,

喜欢这个

# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
from PyInstaller.utils.hooks import collect_submodules
hidden_imports = collect_submodules('h5py')
a = Analysis(['myscript.py'],
         binaries=None,
         datas=[],
         hiddenimports=hidden_imports,
         hookspath=[],
         runtime_hooks=[],
         excludes=[],
         win_no_prefer_redirects=False,
         win_private_assemblies=False,
         cipher=None)
# ... rest of a file untouched

然后保存myscript.spec并运行命令pyinstaller myscript.spec

信用为9Dogs Pyinstaller创建的EXE文件无法加载keras nn模型

最新更新