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

ayu*_*hal 108 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
Run Code Online (Sandbox Code Playgroud)

我使用的是python 2.7,scipy-0.12.0b1 superpack,numpy-1.6.0 superpack,scikit-learn-0.11我有一个windows 7机器

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

Saw*_*wan 143

安装scipy之后为我工作.

  • 再加上重启python shell.:) (23认同)

Gur*_*gde 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
>>> 
Run Code Online (Sandbox Code Playgroud)

所以,只需尝试重启shell!

  • 像这样的魔术答案并不真正有用,因为它们无法解决问题.如果重启不能解决怎么办? (11认同)
  • 只是提到这发生在我身上的scikit-learn 0.15.2针对numpy 1.9和python 2.7编译. (3认同)
  • 如果你不想重启,`del sys.modules ['sklearn .__ check_build']; import sklearn`也可以 (2认同)

Ubd*_*mad 25

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


小智 8

安装numpyscipy,sklearn 仍然有错误

解:

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

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


小智 7

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

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

无需重新启动命令行,但如果需要,可以执行此操作.我花了一天时间修复这个bug.希望这有帮助.


Ben*_*dee 5

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

  • 目前,您可以注释掉导入的行,这应该让您运行.那么请你在问题跟踪器中打开一个问题https://github.com/scikit-learn/scikit-learn/issues看起来像个bug. (2认同)
  • FWIW 注释掉 `__init__.py` 中的 `import` 并没有解决问题,但确实暴露了一个不同的错误 - 我的 scipy 安装没有成功。问题中的错误掩盖了真正的问题 (2认同)