Sklearn'dan içe aktarmada ImportError: check_build adı içe aktarılamıyor


117

Sklearn'dan içe aktarmaya çalışırken şu hatayı alıyorum:

>>> 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 kullanıyorum Windows 7 makinem var

Bu sorun için birkaç cevabı kontrol ettim ancak hiçbiri bu hatadan bir çıkış yolu vermiyor.


Scikit-learn'ü mevcut sürüme (0.13) güncellemeyi deneyin.
adrianp

şimdi aşağıdaki hatayı alıyorum
ayush singhal

ImportError: check_build yerine __check_build adı içe aktarılamıyor
ayush singhal

0.13
scikit

Birisinin sorunuma bir çözümü var mı?
ayush singhal

Yanıtlar:


151

Scipy'yi kurduktan sonra benim için çalıştı.


25
Artı python kabuğunu yeniden başlatmak. :)
Mannu

1
Aynı klasörde "sklearn" adlı bir dosya olup olmadığını kontrol edin. Farklı bir klasörden çalıştırmayı deneyin. Benim için çözdüm (benim hatam). <Ls | ile dosya bul grep -i "sklearn">
Punnerud

@Mannu Evet; Ayrıca jupyter not defterinde benim için, ipynb py-kernel'in tüm jupyter dizüstü bilgisayarı yeniden başlatmadan çalıştığı, sadece yeniden başlatıyorum (kapatıp tekrar tıklayıp aç).
Abhimanu Kumar

scipy.statsAyrıca işe yaramadı da bir hata ortaya çıktı. Benim durumumda, multiprocessing.pyaynı dizinde, çekirdeğin soket bağlantısıyla bir şekilde çakışan bir dosyam vardı. Dosyanın yeniden adlandırılmasıyla düzeltildi multiprocessing_.py(baştaki alt çizgi işe yaramadı).
pylang

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

Bu nedenle, kabuğu yeniden başlatmayı deneyin!


13
Bunun gibi sihirli cevaplar pek yardımcı olmuyor çünkü sorunu çözmüyorlar. Ya yeniden başlatma sorunu çözmezse?
icedwater

3
Sadece numpy 1.9 ve python 2.7'ye karşı derlenen scikit-learn 0.15.2 ile bunun başıma geldiğinden bahsetmiştim.
alexbw

2
Yeniden başlatmak istemiyorsanız, del sys.modules['sklearn.__check_build']; import sklearnçalışacak
Jared Forsyth

15

Python 3.6.5 64-bit Windows 10 için çözümüm:

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

Komut satırını yeniden başlatmanıza gerek yok ama isterseniz bunu yapabilirsiniz. Bu hatayı düzeltmek bir günümü aldı. Umarım bu yardımcı olur.


1
Esasen sklearn'ın en son sürümünün hatayı düzelttiğini söylüyorsanız, hangi sklearn sürüm numaralarına yükseltme yaptığınızı belirtmek faydalı olacaktır. Teşekkürler.
rwp

Bu işe yaradı. Teşekkür ederim.
nk abram

8

Montajından sonra numpy, scipy, sklearn hala hata var

Çözüm:

PathPython ve PYTHONPATHOrtam Değişkeni için Sistem Değişkenini Ayarlama

Sistem Değişkenleri: C:\Python34yola ekle Kullanıcı Değişkenleri: yeni ekle: (ad) PYTHONPATH(değer)C:\Python34\Lib\site-packages;


C: \ Python34 \ Lib \ site-packages \ sklearn konumuna gidin init .py ve setup.py'yi çift ​​tıklayın .
user3236650

5

Genellikle bu tür hataları aldığımda, __init__.pydosyayı açıp etrafta dolaşmak yardımcı oluyor. Dizine gidin C:\Python27\lib\site-packages\sklearnve __check_buildilk adım olarak adlandırılan bir alt dizinin bulunduğundan emin olun . Benim makinede Ben (bir çalışma sklearn kurulum, Mac OSX, Python 2.7.3 ile birlikte) __init__.py, setup.pybunların ilişkili .pycdosyaları ve ikili _check_build.so.

__init__.pyBu dizinde dolaşarak, atacağım bir sonraki adım sklearn/__init__.py, import deyimine gidip yorum yapmaktır --- check_build öğesi yalnızca şeylerin doğru derlendiğini kontrol eder, hiçbir şey yapmıyor gibi görünebilir, ancak önceden derlenmiş ikili. Bu, elbette, kendi sorumluluğunuzdadır ve (emin olmak için) bir çözümdür. Yapınız başarısız olursa, yakında başka, daha büyük sorunlarla karşılaşacaksınız.


Klasörde _check_build.so yok, python 2.7 için bunu almak için ne yapabilirim
ayush singhal

İçeri aktarmaya çalışan satırı yorumlamayı denediniz sklearn/__init__.pymi?
BenDundee

2
Şimdilik, içe aktarmayı yapan ve sizi çalıştırması gereken satırı yorumlayabilirsiniz. O zaman lütfen sorun izleyicide bir sorunu açar mısınız github.com/scikit-learn/scikit-learn/issues bir hata gibi görünür.
Andreas Mueller

2
FWIW dışarı yorumlarında importiçinde __init__.pysorunu çözmek değil ama farklı bir hata ortaya vermedi - benim scipy etmeyi başaramamıştır yükleme. Sorudaki hata asıl sorunu maskelemekti
Temel


3

Python.org'dan Python 3.4'ün 64 bitlik yeni bir sürümünü yükledikten sonra SKLEARN'ı içe aktarırken sorunlar yaşadım.

"Scipy'yi içe aktarmaya" çalıştığımda, bozuk olanın SCIPY modülü olduğu ve alos'un başarısız olduğu ortaya çıktı.

Çözüm, scipy'yi kaldırıp pip3 ile yeniden yüklemekti:

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

2

Anaconda 2.7 64 bit kullanıyorsanız, deneyin

conda upgrade scikit-learn

ve benim için çalışan python kabuğunu yeniden başlatın.

Aynı problemle karşılaştığımda ve çözdüğümde ikinci düzenleme:

conda upgrade scikit-learn

benim için de çalışıyor


1

Diğer cevapların hiçbiri benim için işe yaramadı. Biraz tamirattan sonra, sklearn'i kaldırdım:

pip uninstall sklearn

Sonra sklearn klasörünü buradan kaldırdım: (sisteminize ve python sürümünüze giden yolu ayarlayın)

C:\Users\%USERNAME%\AppData\Roaming\Python\Python36\site-packages

Ve bu siteden tekerlekten yükledi: bağlantı

Hata, muhtemelen başka bir yere yüklenmiş sklearn ile bir sürüm çakışması nedeniyle oradaydı.


1

Benim için, Anaconda'yı en son python sürümüyle (3.7) yeni yükleyerek mevcut kodu yeni kuruluma yükseltiyordum Bunun için,

from sklearn import cross_validation, 
from sklearn.grid_search import GridSearchCV

için

from sklearn.model_selection import GridSearchCV,cross_validate

1

sklearn'ı kaldırıp yeniden yüklemeye gerek yok

bunu dene:

from sklearn.model_selection import train_test_split


-1

Windows'ta:

Sklearn'ı kabuktan silmeye çalıştım: pip uninstall sklearn ve yeniden kurun ama çalışmıyor ..

çözüm:

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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.