从sklearn导入时出现ImportError:无法导入名称check_build


117

尝试从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机器

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


尝试将scikit-learn更新到当前版本(0.13)。
adrianp

现在我遇到以下错误
ayush singhal 2013年

ImportError:无法导入名称__check_build而不是check_build
Ayush singhal 2013年

我确实更新了scikit 0.13
Ayush singhal 2013年

有人可以解决我的问题吗?
ayush singhal 2013年

Answers:


151

安装scipy后为我工作。


25
加上重新启动python shell。:)
Mannu

1
检查同一文件夹中是否有一个名为“ sklearn”的文件。尝试从其他文件夹运行。为我解决了(我的错)。用<ls |查找文件 grep -i“ sklearn”>
Punnerud'3

@Mannu是的;对我来说,在jupyter笔记本电脑上,也只需重启(关闭并再次单击打开)ipynb py-kernel即可工作,而无需重新启动所有jupyter笔记本电脑。
Abhimanu Kumar '18

scipy.stats还没工作还引发了错误。就我而言,我multiprocessing.py在同一个目录中有一个文件,该文件与内核的套接字连接有某种冲突。通过重命名文件进行修复multiprocessing_.py(前划线不能使用)。
pylang

47
>>> 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!


13
这样的魔术答案并不能真正解决问题,因为它们不能解决问题。如果重启无法解决该怎么办?
icedwater

3
刚才提到这发生在我对numpy 1.9和python 2.7进行编译的scikit-learn 0.15.2中。
alexbw 2014年

2
如果您不想重新启动,del sys.modules['sklearn.__check_build']; import sklearn也可以使用
Jared Forsyth 2015年

15

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

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

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


1
如果您本质上是在说sklearn的最新版本已修复了该错误,则指出要升级到哪个版本的sklearn会很有帮助。谢谢。
rwp

这工作了。谢谢。
nk abram

8

安装numpyscipysklearn 仍然有错误

解:

设置PathPython的系统变量和PYTHONPATH环境变量

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


转到C:\ Python34 \ Lib \ site-packages \ sklearn双击init .py和setup.py。
user3236650

5

通常,当我遇到此类错误时,打开__init__.py文件并四处浏览会有所帮助。转到目录,C:\Python27\lib\site-packages\sklearn并确保首先有一个子目录__check_build。在我的机器(有工作sklearn安装,Mac OSX版,Python的2.7.3)我有__init__.pysetup.py及其相关的.pyc文件和二进制_check_build.so

闲逛在__init__.py该目录中,我会采取下一步行动就是去sklearn/__init__.py进出import语句评论---只是检查,事情被正确编译check_build的东西,它似乎并没有做任何事情,但调用预编译二进制 当然,这需要您自担风险,而且(肯定)可以解决。如果构建失败,您可能很快就会遇到其他更大的问题。


我的文件夹中没有_check_build.so,我该怎么做才能使用python 2.7
ayush singhal 2013年

您是否尝试注释掉尝试将其导入的行sklearn/__init__.py
BenDundee

2
目前,您可以注释掉执行导入的行,这将使您运行起来。然后,您能否在问题跟踪器github.com/scikit-learn/scikit-learn/issues中打开一个问题,看起来像个错误。
Andreas Mueller

2
FWIW注释掉importin __init__.py并不能解决问题,但确实暴露了另一个错误-我的scipy安装未成功。问题中的错误掩盖了真正的问题
基本的


3

从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
>>>

2

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

conda upgrade scikit-learn

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

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

conda upgrade scikit-learn

对我也有用


1

没有其他答案对我有用。经过一番修补后,我卸载了sklearn:

pip uninstall sklearn

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

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

并从此站点通过转轮安装了它:链接

该错误在那里可能是由于与其他地方安装的sklearn版本冲突。


1

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

from sklearn import cross_validation, 
from sklearn.grid_search import GridSearchCV

from sklearn.model_selection import GridSearchCV,cross_validate

1

无需卸载然后重新安装sklearn

试试这个:

from sklearn.model_selection import train_test_split

0

我在重新安装anaconda时遇到了同样的问题,为我解决了这个问题


-1

在Windows中:

我试图从外壳中删除sklearn:pip卸载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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.