Python WinError 126导入scikit学习包时,找不到指定的模块? 问题

Python WinError 126导入scikit学习包时,找不到指定的模块? 问题,python,scikit-learn,Python,Scikit Learn,我开始学习机器学习,其中一个课程示例使用scikit学习包,我们需要安装并应用到目前为止所做的工作。但是,我尝试按照pip install scikit learn建议的课程讲师的方式安装软件包。在安装过程中,安装了numpy、scipy、threadpoolctl和joblib作为scikit learn的先决条件。到目前为止,一切都很顺利。 但是,在那之后,当我尝试导入scikit学习包时 from sklearn.tree import DecisionTreeRegressor 我得到

我开始学习机器学习,其中一个课程示例使用scikit学习包,我们需要安装并应用到目前为止所做的工作。但是,我尝试按照
pip install scikit learn
建议的课程讲师的方式安装软件包。在安装过程中,安装了numpy、scipy、threadpoolctl和joblib作为scikit learn的先决条件。到目前为止,一切都很顺利。 但是,在那之后,当我尝试导入scikit学习包时

from sklearn.tree import DecisionTreeRegressor
我得到以下错误:

  Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\hema-\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\sklearn\__init__.py", line 74, in <module>
    from .base import clone
  File "C:\Users\hema-\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\sklearn\base.py", line 20, in <module>
    from .utils import _IS_32BIT
  File "C:\Users\hema-\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\sklearn\utils\__init__.py", line 18, in <module>
    from scipy.sparse import issparse
  File "C:\Users\hema-\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\scipy\__init__.py", line 136, in <module>
    from . import _distributor_init
  File "C:\Users\hema-\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\scipy\_distributor_init.py", line 61, in <module>
    WinDLL(os.path.abspath(filename))
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2288.0_x64__qbz5n2kfra8p0\lib\ctypes\__init__.py", line 364, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: [WinError 126] The specified module could not be found
我还试了什么?
  • 我试着重新安装
  • 我还尝试安装从下载的软件包的轮子版本。但是,出现了另一个问题,即当我尝试通过
    pip install scikit_learn-0.23.1-cp39-cp39-win_amd64安装车轮时,我遇到以下错误:
尽管如此,我还是通过使用前面提到的
--no binary
选项解决了这个问题

我的环境
  • 我正在使用Python 3.7.8
  • 操作系统Windows10
  • venv软件包的列表(认为可能有帮助)
joblib 0.16.0
numpy 1.19.1
pip 20.1.1
scikit学习0.23.1
scipy 1.5.2
setuptools 47.1.0
threadpoolctl 2.1.0


首先,您应该在shell中输入此代码,检查您的pip版本是否不支持cp39

import pip._internal;print(pip._internal.pep425tags.get_supported())
也许你会得到一些回复,比如:

[('cp38', 'cp38m', 'win_amd64'), ('cp38', 'none', 'win_amd64'), ('py3', 'none', 'win_amd64'), ('cp38', 'none', 'any'), ('cp3', 'none', 'any'), ('py38', 'none', 'any'), ('py3', 'none', 'any'), ('py37', 'none', 'any'), ('py36', 'none', 'any'), ('py35', 'none', 'any'), ('py34', 'none', 'any'), ('py33', 'none', 'any'), ('py32', 'none', 'any'), ('py31', 'none', 'any'), ('py30', 'none', 'any')]
因此,如果您的python pip不支持cp39,请选择降级版本。 例如:

scikit_learn‑0.23.2‑cp38‑cp38‑win_amd64.whl

然后,当您下载此配置文件时,复制到您的站点页面,在终端中使用此命令

pip install scikit_learn‑0.23.2‑cp38‑cp38‑win_amd64.whl

我想它会起作用的!希望能帮助你

首先,您应该在shell中输入此代码,检查您的pip版本是否不支持cp39

import pip._internal;print(pip._internal.pep425tags.get_supported())
也许你会得到一些回复,比如:

[('cp38', 'cp38m', 'win_amd64'), ('cp38', 'none', 'win_amd64'), ('py3', 'none', 'win_amd64'), ('cp38', 'none', 'any'), ('cp3', 'none', 'any'), ('py38', 'none', 'any'), ('py3', 'none', 'any'), ('py37', 'none', 'any'), ('py36', 'none', 'any'), ('py35', 'none', 'any'), ('py34', 'none', 'any'), ('py33', 'none', 'any'), ('py32', 'none', 'any'), ('py31', 'none', 'any'), ('py30', 'none', 'any')]
因此,如果您的python pip不支持cp39,请选择降级版本。 例如:

scikit_learn‑0.23.2‑cp38‑cp38‑win_amd64.whl

然后,当您下载此配置文件时,复制到您的站点页面,在终端中使用此命令

pip install scikit_learn‑0.23.2‑cp38‑cp38‑win_amd64.whl

我想它会起作用的!希望能帮助你

Scikit learn 0.20是支持Python 2.7和Python 3.4的最后一个版本。Scikit learn 0.21支持Python 3.5-3.7。Scikit学习0.22支持的Python 3.5-3.8。Scikit learn现在需要Python 3.6或更高版本


因此,我认为您应该将python更新到3.9,Scikit learn 0.20是支持python 2.7和python 3.4的最新版本。Scikit learn 0.21支持Python 3.5-3.7。Scikit学习0.22支持的Python 3.5-3.8。Scikit learn现在需要Python 3.6或更高版本


因此,我认为您应该将python更新到3.9,首先,我可以在
cmd
中发布
python-mpipdebug--verbose
,以检查兼容的标记列表。其次,我认为问题不在于安装,正如我所说,我确实解决了轮子安装问题,问题在于运行脚本时加载库。谢谢。首先,我可以在
cmd
中发布
python-mpipdebug--verbose
来检查兼容标记列表。其次,我认为问题不在于安装,正如我所说,我确实解决了轮子安装问题,问题在于运行脚本时加载库。谢谢