Python 从sklearn导入时导入错误:无法导入名称检查\u生成

Python 从sklearn导入时导入错误:无法导入名称检查\u生成,python,numpy,scipy,scikit-learn,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 &l

尝试从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
来自sklearn导入svm的
>>
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
从sk学习输入svm
文件“C:\Python27\lib\site packages\sklearn\\uuuu init\uuuuu.py”,第16行,在
从…起导入检查生成

ImportError:无法导入名称检查\u生成
我使用的是python 2.7、scipy-0.12.0b1超级包、numpy-1.6.0超级包、scikit-learn-0.11 我有一台Windows7电脑


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

通常当我遇到这种错误时,打开
\uuuu init\uuuuuuuuuupy
文件并四处查看会有帮助。转到目录
C:\Python27\lib\site packages\sklearn
,并确保第一步中有一个名为
\uu check\u build
的子目录。在我的机器上(有一个工作的sklearn安装,Mac OSX,Python2.7.3),我有
\uuu init\uuuuuuuuupy
setup.py
,它们相关的
.pyc
文件和一个二进制
\u check\u build.so

翻开该目录中的
\uuuu init\uuuuuuuuuuuupy
,我要采取的下一步是转到
sklearn/\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuy.py
并注释掉import语句——check\u build东西只是检查编译是否正确,除了调用预编译的二进制文件外,似乎什么都不做。当然,这是由你自己承担风险的,而且(可以肯定)是一个解决办法。如果构建失败,您可能很快就会遇到其他更大的问题。

>>来自sklearn的导入预处理、度量、交叉验证
>>> 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
>>> 
回溯(最近一次呼叫最后一次): 文件“”,第1行,在 从sklearn导入预处理、度量、交叉验证 文件“D:\Python27\lib\site packages\sklearn\\uuuu init\uuuuu.py”,第31行,在 从…起导入检查生成
导入错误:无法导入名称\u检查\u生成 >>>=================================================重新启动================================ >>>从sklearn导入预处理、度量、交叉验证 >>>

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

在安装scipy后为我工作。

在安装
numpy
后,
scipy
sklearn
仍有错误

解决方案:

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

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

我在Windows上也遇到了同样的问题。通过按照建议从安装Numpy+MKL(建议在其他依赖Numpy+MKL的软件包之前安装Numpy+MKL)解决了此问题。

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

conda upgrade scikit-learn
重新启动pythonshell,这对我很有用

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

conda upgrade scikit-learn

也对我有效

其他答案都对我无效。经过一些修补,我了解到:

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

以及从该站点的wheel安装的:


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

在从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
>>>
在windows中:

我试图从shell中删除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

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

  • pip卸载sklearn
  • pip卸载scikit学习
  • pip安装sklearn
  • 无需重新启动命令行,但如果需要,可以这样做。
    我花了一天的时间来修复这个错误。希望能有所帮助。

    我也遇到了同样的问题,重新安装anaconda为我解决了这个问题, 我通过安装Anaconda from fresh和最新的python版本(3.7)将现有代码升级到新的设置中 为此,

    from sklearn import cross_validation, 
    from sklearn.grid_search import GridSearchCV
    


    无需卸载并重新安装sklearn

    试试这个:

    from sklearn.model_selection import train_test_split
    


    尝试将scikit learn更新到当前版本(0.13)。现在我收到以下错误ImportError:无法导入名称\uuu check\u build而不是check\u build我已更新到scikit 0.13是否有人能解决我的问题?我没有\uCheck\u build。因此,在文件夹中,对于python 2.7,我该怎么做才能得到这个结果?您是否尝试在
    sklearn/\uuuu init\uuuuuuuuy.py
    中注释掉尝试导入它的行?目前,您可以注释掉执行导入的行,这应该会让您运行。然后,您可以在问题跟踪器中打开一个问题吗?问题跟踪器看起来像一个bug。FWIW在
    \uuuu init\uuuuuupy中注释了
    导入
    。py
    没有解决问题,但暴露了另一个错误-我的scipy安装没有成功。问题中的错误是掩盖了真正的问题。像这样的逻辑答案并没有真正的帮助,因为它们不能解决问题。如果重新启动不能解决问题怎么办?只是提到,在针对numpy 1.9和python 2.7编译的scikit learn 0.15.2中发生了这种情况。如果您不想重新启动,
    del sys.modules['sklearn.\uu check\u build'];import sklearn
    还将转到C:\Python34\Lib\site packages\sklearn双击init.py和setup.py,然后重新启动python shell。:)检查同一文件夹中是否有名为“sklearn”的文件。尝试从其他文件夹运行。帮我解决了(我的错)。查找带有@Mannu Yes的文件;同样对我来说,在jupyter笔记本上,只需重新启动(关闭并再次单击打开)ipynb py内核即可工作,而不必重新启动所有jupyter笔记本。
    scipy.stats
    也无法工作,这也引发了一个错误。就我而言,
    from sklearn.model_selection import GridSearchCV,cross_validate
    
    from sklearn.model_selection import train_test_split