![](/img/trans.png)
[英]ModuleNotFoundError: No module named 'sklearn.tree.tree'
[英]Pyinstaller and sklearn.ensemble: 'ModuleNotFoundError: No module named 'sklearn.neighbors.quad_tree' [2760]'
我在PyQt5中編寫了一個GUI,其中包含from sklearn.ensemble import RandomForestClassifier
的行。
根據這個答案的建議,在\\Anaconda3\\Lib\\site-packages\\PyInstaller\\hooks
,我添加了一個名為hook-pandas.py
的文件,其中包含以下內容:
hiddenimports = ['pandas._libs.tslibs.timedeltas', 'sklearn.neighbors.typedefs']
之后,我嘗試在Anaconda Prompt中運行pyinstaller -F visual_vitals.py --hidden-import sklearn.neighbors.typedefs
。
但是,我收到錯誤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.)這將按名稱vitals.spec創建一個文件
3.)查找行
> hidden imports=[]
在spec文件中。
替換為
> hiddenimports = ['pandas._libs.tslibs.timedeltas',
> 'sklearn.neighbors.typedefs']
4.)添加這兩行以增加spec文件開頭的遞歸限制
> 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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.