2013-03-07 7 views
71

sto ottenendo il seguente errore durante il tentativo di importare da sklearn:ImportError in importazione da sklearn: non si può importare nome 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 

Sto usando Python 2.7, SciPy-0.12.0b1 Superpack, NumPy-1.6. 0 superpack, scikit-learn-0.11 Ho una macchina Windows 7

Ho controllato diverse risposte per questo problema ma nessuna di esse fornisce una soluzione a questo errore.

+0

provare ad aggiornare scikit-learn alla versione attuale (0,13). – adrianp

+0

ora sto ottenendo il seguente errore –

+0

ImportError: impossibile importare il nome __check_build invece di check_build –

risposta

102

Ha funzionato per me dopo aver installato scipy.

+4

Inoltre, riavvio della shell python. :) – Mannu

+0

Controlla se c'è un file chiamato "sklearn" nella stessa cartella. Prova a correre da una cartella diversa. Risolto per me (colpa mia). Trova il file con Punnerud

6

Di solito quando si verificano questi tipi di errori, aprire il file __init__.py e dare un'occhiata aiuta. Vai alla directory C:\Python27\lib\site-packages\sklearn e assicurati che ci sia una sottodirectory chiamata __check_build come primo passo. Sulla mia macchina (con un'installazione sklearn funzionante, Mac OSX, Python 2.7.3) ho __init__.py, setup.py, i loro file .pyc associati e un binario _check_build.so.

In questa directory, il passaggio successivo che dovrei fare è andare su sklearn/__init__.py e commentare l'istruzione import --- la roba check_build controlla solo che le cose siano state compilate correttamente, non sembra fai qualsiasi cosa, ma chiama un binario precompilato. Questo è, ovviamente, a vostro rischio e, (per essere sicuri) un lavoro in giro. Se la tua build fallisce, probabilmente ti imbatterai in altri problemi più grandi.

+0

Non ho _check_build.so nella cartella, cosa posso fare per ottenere questo per python 2.7 –

+0

Hai provato a commentare la linea che prova a importarlo in 'sklearn/__init __. py'? – BenDundee

+2

Per il momento, puoi commentare la linea che importa, che dovrebbe farti funzionare. Puoi quindi aprire un problema nel tracker dei problemi https://github.com/scikit-learn/scikit-learn/issues sembra un bug. –

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

Quindi, prova semplicemente a riavviare la shell!

+7

Le risposte magiche come questa non sono davvero utili perché non risolvono il problema. Cosa succede se un riavvio non lo risolve? – icedwater

+3

Solo menzionando che mi è successo con scikit-learn 0.15.2 compilato contro numpy 1.9 e python 2.7. – alexbw

+2

Se non si desidera riavviare, 'del sys.modules ['sklearn .__ check_build']; import sklearn' funzionerà anche –

8

Dopo l'installazione numpy, scipy, sklearn ha ancora errore

Soluzione:

Configurazione di Sistema Path variabile per Python & le PYTHONPATH ambiente Variabile

Variabili di sistema: aggiungere C:\Python34 nel percorso Variabili utente : aggiungi nuovo: (nome) PYTHONPATH (valore) C:\Python34\Lib\site-packages;

+0

vai a C: \ Python34 \ Lib \ site-packages \ sklearn Fai doppio clic su _init_.py e setup.py. – user3236650

+0

Questo ha fatto il trucco, grazie! Funziona con pycharm –

20

Riavvia la shell python dopo aver installato scipy! Non è necessario riavviare il dispositivo inattivo dopo averlo ancora installato!

+1

Questo aiuta, grazie fratello ~ – KAs

2

Se si utilizza Anaconda 2.7 a 64 bit, provare

conda upgrade scikit-learn 

e riavviare la shell di pitone, che funziona per me.

1

Nessuna delle altre risposte ha funzionato per me.Dopo alcuni ritocchi I unsinstalled sklearn:

pip uninstall sklearn 

Poi ho rimosso cartella sklearn da qui: (regolare il percorso del sistema e la versione di Python)

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

E l'installato dalla ruota da questo sito: link

L'errore era probabilmente dovuto a un conflitto di versione con sklearn installato altrove.

2

Ho avuto problemi nell'importare SKLEARN dopo aver installato una nuova versione 64bit di Python 3.4 da python.org.

Si è scoperto che era il modulo SCIPY che era guasto e alias ha avuto esito negativo quando ho tentato di "importare scipy".

soluzione era quella di disinstallare e reinstallare SciPy con 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 
>>>