关于python:从sklearn导入时的ImportError:无法导入名称check_build

ImportError in importing from sklearn: cannot import name check_build

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

1
2
3
4
5
6
7
8
>>> 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机器

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


安装scipy之后为我工作。


1
2
3
4
5
6
7
8
9
10
11
>>> 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!


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


安装numpy后,scipysklearn仍然有错误

解:

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

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


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

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


    通常当我遇到这些类型的错误时,打开__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的东西只是检查事情是否编译正确,它似乎没有做任何事情,但调用预编译的二进制文件。当然,这需要您自担风险,并且(确定)可以解决这个问题。如果您的构建失败,您可能很快就会遇到其他更大的问题。


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

    • 点击卸载scikit-learn
    • pip uninstall sklearn
    • pip install sklearn

    这解决了我的问题。


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

    事实证明,这是SCIPY模块被破坏,当我试图"导入scipy"时alos失败了。

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

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    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上遇到了同样的问题。通过从http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy安装Numpy + MKL来解决这个问题(建议在其他依赖它的软件包之前安装numpy + mkl),如本答案所示。


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

    1
    conda upgrade scikit-learn

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

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

    1
    conda upgrade scikit-learn

    也适合我


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

    1
    pip uninstall sklearn

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

    1
    2
    C:\Users\%USERNAME%\AppData
    oaming\Python\Python36\site-packages

    并从这个站点的车轮安装它:链接

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


    无需卸载&amp; 然后重新安装sklearn

    试试这个:

    1
    from sklearn.model_selection import train_test_split

    为了我,
    我通过安装Anaconda从最新的python版本(3.7)将现有代码升级到新的设置
    为了这,

    1
    2
    from sklearn import cross_validation,
    from sklearn.grid_search import GridSearchCV

    1
    from sklearn.model_selection import GridSearchCV,cross_validate

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


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


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


    确保您编码的文件未命名为"sklearn"。我犯了同样的错误,现在重命名文件后,它运行正常


    在Windows中:

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

    解决方案:

    1
    2
    3
    4
    5
    6
    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

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

    1
    2
    3
    4
    5
    6
    7
    8
    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被名称"sklearn.py"搞糊涂了,所以代码无法正确执行。我注意到你的路上还有sklearn

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

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