mar*_*lli 2 python hook pyinstaller scikit-learn
我在 PyQt5 中编写了一个 GUI,其中包括
from sklearn.ensemble import RandomForestClassifier.
按照此答案中的建议,在 中\Anaconda3\Lib\site-packages\PyInstaller\hooks,我添加了一个名为的文件hook-pandas.py,其中包含以下内容:
hiddenimports = ['pandas._libs.tslibs.timedeltas',
'sklearn.neighbors.typedefs']
之后,我尝试pyinstaller -F visual_vitals.py --hidden-import sklearn.neighbors.typedefs
在 Anaconda Prompt 中运行
。
但是,我收到错误
RecursionError: maximum recursion depth exceeded。
另一方面,如果我只运行`pyinstaller visual_vitals.py'
然后 .exe 正确构建,当我尝试运行它时,我收到消息
modulenotfounderror: no module named 'sklearn.neighbors.quad_tree'。
我该怎么办?
请注意,如果我使用支持向量分类器而不是随机森林,问题就会消失,因此问题特定于该分类器而不是整个sklearn.
小智 5
我在使用 sklearn 和 pyinstaller 时遇到了同样的问题。
这是我解决它的方法:
1.)使用命令:
> pyi-makespec -F visual_vitals.py
Run Code Online (Sandbox Code Playgroud)
2.) 这将创建一个名为vitals.spec 的文件
3.) 找线
> hidden imports=[]
Run Code Online (Sandbox Code Playgroud)
在规范文件中。
将其替换为
> hiddenimports = ['pandas._libs.tslibs.timedeltas',
> 'sklearn.neighbors.typedefs']
Run Code Online (Sandbox Code Playgroud)
4.) 添加这两行以增加规范文件开头的递归限制
> import sys
>
> sys.setrecursionlimit(5000)
Run Code Online (Sandbox Code Playgroud)
5.) 运行:
> pyinstaller visual_vitals.spec
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5160 次 |
| 最近记录: |