2013-03-07 136 views
71

嘗試從sklearn進口我收到以下錯誤:導入錯誤從sklearn導入:不能導入名稱check_build

>>> 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超級包裝,scikit-learn-0.11 我有一臺Windows 7機器

我已經檢查了這個問題的幾個答案,但沒有一個給出了一個出路這個錯誤。

+0

嘗試更新scikit學習到最新的版本(0.13)。 – adrianp 2013-03-07 15:15:13

+0

現在我收到以下錯誤 – 2013-03-07 15:16:46

+0

ImportError:無法導入名稱__check_build而不是check_build – 2013-03-07 15:17:25

回答

102

安裝scipy後爲我工作。

+4

加上重新啓動python shell。 :) – Mannu 2018-01-07 09:36:56

+0

檢查在同一個文件夾中是否有名爲「sklearn」的文件。嘗試從其他文件夾運行。爲我解決了(我的錯)。用 Punnerud 2018-03-03 11:50:43

6

通常,當我收到這些錯誤時,打開__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只是檢查是否編譯正確,看起來不是除了調用預編譯的二進制文件以外,什麼都不做當然,這是您自己承擔的風險,並且(可以肯定)是一種解決方法。如果你的構建失敗了,你很可能很快會遇到其他更大的問題。

+0

我沒有_check_build.so在文件夾中,我能做些什麼來獲得這個蟒蛇2.7 – 2013-03-07 16:09:38

+0

你嘗試評論試圖將其導入'sklearn/__init __。py'? – BenDundee 2013-03-07 18:18:14

+2

目前,您可以註釋掉導入的行,這會讓您運行。那麼你可以在問題跟蹤器中打開一個問題https://github.com/scikit-learn/scikit-learn/issues看起來像一個錯誤。 – 2013-03-09 11:35:46

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

+7

這樣的魔術答案並不真正有用,因爲它們不能解決問題。如果重新啓動不能解決問題會怎樣? – icedwater 2014-09-23 08:41:42

+3

只是提到這發生在我用scikit學習0.15.2編譯numpy 1.9和python 2.7。 – alexbw 2014-10-09 14:13:37

+2

如果你不想重啓,'del sys.modules ['sklearn .__ check_build'];進口sklearn'也將工作 – 2015-03-23 22:55:05

8

安裝後numpyscipysklearn仍然有錯誤

解決方案:

設置系統Path變量的Python &的PYTHONPATH環境變量

系統變量:新增C:\Python34到路徑 用戶變量:新增:(名稱)PYTHONPATH(值)C:\Python34\Lib\site-packages;

+0

轉到C:\ Python34 \ Lib \ site-packages \ sklearn雙擊_init_.py和setup.py。 – user3236650 2016-03-15 01:15:04

+0

這樣做,謝謝!它適用於pycharm – 2018-03-06 15:53:45

20

安裝scipy後重新啓動python shell!安裝完成後,您一定還沒有重新啓動閒置!

+1

這有助於,謝謝bro〜 – KAs 2017-11-25 10:14:41

2

如果您使用Anaconda 2.7 64位,儘量

conda upgrade scikit-learn 

,並重新啓動Python Shell中,爲我的作品。

1

沒有其他答案爲我工作。一些修修補補之後我unsinstalled sklearn:

pip uninstall sklearn 

然後,我從這裏取出sklearn文件夾:(調整路徑系統和Python版本)

C:\Users\User\AppData\Roaming\Python\Python36\site-packages 

而從這個網站車輪安裝了它: link

可能是因爲與其他地方安裝的sklearn版本衝突導致的錯誤。

2

從python.org安裝新的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 
>>> 
相關問題