127

尝试从 sklearn 导入时出现以下错误:

>>> from sklearn import svm

Traceback (most recent call last):
  File "<pyshell#17>", line 1, in <module>
   from sklearn import svm
  File "C:\Python27\lib\site-packages\sklearn\__init__.py", line 16, in <module>
   from . import check_build
ImportError: cannot import name check_build

我正在使用 python 2.7、scipy-0.12.0b1 superpack、numpy-1.6.0 superpack、scikit-learn-0.11 我有一台 Windows 7 机器

我已经检查了这个问题的几个答案,但没有一个给出解决这个错误的方法。

4

13 回答 13

159

安装 scipy 后为我工作。

于 2014-10-08T11:03:26.847 回答
50
>>> from sklearn import preprocessing, metrics, cross_validation

Traceback (most recent call last):
  File "<pyshell#6>", line 1, in <module>
    from sklearn import preprocessing, metrics, cross_validation
  File "D:\Python27\lib\site-packages\sklearn\__init__.py", line 31, in <module>
    from . import __check_build
ImportError: cannot import name __check_build
>>> ================================ RESTART ================================
>>> from sklearn import preprocessing, metrics, cross_validation
>>> 

因此,只需尝试重新启动 shell!

于 2013-07-25T22:53:14.547 回答
22

我的 Python 3.6.5 64 位 Windows 10 解决方案:

  1. pip uninstall sklearn
  2. pip uninstall scikit-learn
  3. pip install sklearn

无需重新启动命令行,但您可以根据需要执行此操作。我花了一天时间来修复这个错误。希望这有帮助。

于 2018-06-06T04:09:47.707 回答
9

安装numpyscipysklearn 还是有错误

解决方案:

Path为 Python 和PYTHONPATH环境变量设置系统变量

系统变量:添加C:\Python34到路径用户变量:添加新:(名称)PYTHONPATH(值)C:\Python34\Lib\site-packages;

于 2015-05-26T01:02:22.093 回答
6

通常当我遇到这类错误时,打开__init__.py文件并四处寻找会有所帮助。转到目录C:\Python27\lib\site-packages\sklearn并确保有一个称为__check_build第一步的子目录。在我的机器上(安装了工作的 sklearn、Mac OSX、Python 2.7.3)我有__init__.py, setup.py、它们的关联.pyc文件和一个二进制_check_build.so.

在该目录中四处__init__.py寻找,下一步我将去sklearn/__init__.py注释掉 import 语句—— check_build 东西只是检查东西是否被正确编译,它似乎没有做任何事情,只是调用一个预编译的二进制。当然,这需要您自担风险,并且(可以肯定)是一种解决方法。如果您的构建失败,您可能很快就会遇到其他更大的问题。

于 2013-03-07T16:02:07.183 回答
4

我在 Windows 上遇到了同样的问题。按照这个答案的建议,通过从http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy安装 Numpy+MKL 解决了这个问题(建议在其他依赖它的软件包之前安装 numpy+mkl)。

于 2016-10-10T19:05:55.723 回答
4

从 python.org 安装新的 64 位版本的 Python 3.4 后,我在导入 SKLEARN 时遇到问题。

原来是 SCIPY 模块坏了,当我尝试“导入 scipy”时,alos 失败了。

解决方案是卸载 scipy 并使用 pip3 重新安装:

C:\> pip uninstall scipy

[lots of reporting messages deleted]

Proceed (y/n)? y
  Successfully uninstalled scipy-1.0.0

C:\Users\>pip3 install scipy

Collecting scipy
  Downloading scipy-1.0.0-cp36-none-win_amd64.whl (30.8MB)
    100% |████████████████████████████████| 30.8MB 33kB/s
Requirement already satisfied: numpy>=1.8.2 in c:\users\johnmccurdy\appdata\loca
l\programs\python\python36\lib\site-packages (from scipy)
Installing collected packages: scipy
Successfully installed scipy-1.0.0

C:\Users>python
Python 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:54:40) [MSC v.1900 64 bit (AMD64)]
 on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import scipy
>>>
>>> import sklearn
>>>
于 2018-01-24T14:54:55.360 回答
3

如果您使用 Anaconda 2.7 64 位,请尝试

conda upgrade scikit-learn

并重新启动python shell,这对我有用。

当我遇到同样的问题并解决它时进行第二次编辑:

conda upgrade scikit-learn

也适合我

于 2017-03-01T01:58:09.603 回答
2

其他答案都不适合我。经过一些修补后,我卸载了 sklearn:

pip uninstall sklearn

然后我从这里删除了 sklearn 文件夹:(调整你的系统和 python 版本的路径)

C:\Users\%USERNAME%\AppData\Roaming\Python\Python36\site-packages

并从本网站的轮子安装它:链接

该错误可能是因为与安装在其他地方的 sklearn 存在版本冲突。

于 2018-01-21T13:59:54.037 回答
2

对我来说,我通过使用最新的 python 版本(3.7)从新安装 Anaconda 将现有代码升级到新设置为此,

from sklearn import cross_validation, 
from sklearn.grid_search import GridSearchCV

from sklearn.model_selection import GridSearchCV,cross_validate
于 2019-02-15T06:18:22.613 回答
2

无需卸载然后重新安装 sklearn

试试这个:

from sklearn.model_selection import train_test_split
于 2019-06-17T06:17:45.123 回答
0

我有同样的问题重新安装anaconda为我解决了这个问题

于 2018-11-03T14:57:17.150 回答
-1

在窗口中:

我试图从 shell 中删除 sklearn:pip uninstall sklearn,然后重新安装它但不起作用..

解决方案:

1- open the cmd shell.
2- cd c:\pythonVERSION\scripts
3- pip uninstall sklearn
4- open in the explorer: C:\pythonVERSION\Lib\site-packages
5- look for the folders that contains sklearn and delete them ..
6- back to cmd: pip install sklearn
于 2018-03-24T15:54:35.247 回答