从sklearn导入时导入:无法导入名称check_build

时间:2013-03-07 15:12:12

标签: python numpy scipy scikit-learn

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

我已经检查过这个问题的几个答案,但没有一个能解决这个错误。

19 个答案:

答案 0 :(得分:138)

安装scipy之后为我工作。

答案 1 :(得分:46)

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

答案 2 :(得分:25)

安装scipy后重启python shell!安装完毕后你必须重新启动空闲!

答案 3 :(得分:8)

安装numpy后,scipysklearn仍有错误

解决方案:

为Python设置系统Path变量&amp; PYTHONPATH环境变量

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

答案 4 :(得分:6)

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

  1. pip uninstall sklearn
  2. pip uninstall scikit-learn
  3. pip install sklearn
  4. 无需重启命令行,但如果需要,可以执行此操作。 我花了一天时间修复这个bug。希望这有帮助。

答案 5 :(得分: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只是检查事情是否已正确编译,除了调用预编译的二进制文件之外,它似乎没有做任何事情。当然,这需要您自担风险,并且(确定)可以解决这个问题。如果您的构建失败,您可能很快就会遇到其他更大的问题。

答案 6 :(得分:3)

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

答案 7 :(得分:3)

这可能是因为您可能同时安装了scikit-learn和sklearn。运行以下命令

  • pip卸载scikit-learn
  • pip卸载sklearn
  • pip install sklearn

这为我解决了这个问题。

答案 8 :(得分:2)

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

答案 9 :(得分:1)

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

pip uninstall sklearn

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

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

从本网站的车轮上安装它:link

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

答案 10 :(得分:1)

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

conda upgrade scikit-learn

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

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

conda upgrade scikit-learn

也适合我

答案 11 :(得分:1)

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

from sklearn import cross_validation, 
from sklearn.grid_search import GridSearchCV

from sklearn.model_selection import GridSearchCV,cross_validate

答案 12 :(得分:0)

在Windows中:

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

解决方案:

list = ['BHX', 'AR', 'DEFab', 'ABR', 'DEFyr', 'HYt', 'wqw', 'DEF-a']
merged_list = []
current = ''

for s in list:
    if s.startswith('DEF'):
        merged_list.append(current + ' ' + s)
        current = ''
    else:
        current += s 

答案 13 :(得分:0)

我在Windows机器上遇到了同样的问题,并通过从http://www.lfd.uci.edu/~gohlke/pythonlibs/安装numpy + mkl软件包解决了这个问题。安装完成后,重新启动shell。

答案 14 :(得分:0)

我在安装sklearn时遇到问题并尝试导入数据集 问题是cython兼容性。 在创建一个没有cython的新环境后,它就像一个魅力。

答案 15 :(得分:0)

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

答案 16 :(得分:0)

确保您要编码的文件未命名为“ sklearn”。我犯了同样的错误,现在重命名文件后,它工作正常

答案 17 :(得分:0)

无需卸载然后重新安装sklearn

尝试一下:

from sklearn.model_selection import train_test_split

答案 18 :(得分:-1)

最近我遇到了和你一样的错误。

Traceback (most recent call last):
entFile "/Users/honey/Documents/machine_learning/task1/sklearn.py", line 8, in <module>er code here
from sklearn import feature_extraction  
File "/Users/honey/Documents/machine_learning/task1/sklearn.py", line 8, in <module>
from sklearn import feature_extraction
ImportError: cannot import name 'feature_extraction'
[Finished in 0.8s with exit code 1]
[cmd: ['python3', '-u', '/Users/honey/Documents/machine_learning/task1/sklearn.py']]

然后我发现python被名称&#34; sklearn.py&#34;混淆了,所以代码无法正确执行。我注意到你的路上还有sklearn

C:\Python27\lib\site-packages\sklearn\__init__.py

所以也许你可以试着避免&#34; sklearn&#34;在你的道路上避免歧义。希望它可以提供帮助。 (对不起,或许我误解了这个问题,可能没什么用。)