ImportError dalam mengimpor dari sklearn: tidak dapat mengimpor nama check_build

117

Saya mendapatkan kesalahan berikut saat mencoba mengimpor dari 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

Saya menggunakan python 2.7, scipy-0.12.0b1 superpack, numpy-1.6.0 superpack, scikit-learn-0.11 Saya memiliki mesin windows 7

Saya telah memeriksa beberapa jawaban untuk masalah ini tetapi tidak ada yang memberi jalan keluar dari kesalahan ini.

ayush singhal
sumber
Coba perbarui scikit-learn ke versi saat ini (0,13).
adrianp
sekarang saya mendapatkan kesalahan berikut
ayush singhal
ImportError: tidak dapat mengimpor nama __check_build alih-alih check_build
ayush singhal
Saya memperbarui ke scikit 0,13
ayush singhal
Apakah seseorang punya solusi untuk masalah saya?
ayush singhal

Jawaban:

151

Bekerja untuk saya setelah menginstal scipy.

Sawan
sumber
25
Ditambah memulai ulang shell python. :)
Mannu
1
Periksa apakah ada file bernama "sklearn" di folder yang sama. Coba jalankan dari folder lain. Memecahkannya untuk saya (salah saya). Temukan file dengan <ls | grep -i "sklearn">
Punnerud
@AndaTahu Ya; Juga untuk saya di notebook jupyter, cukup restart (mematikan dan klik-buka lagi) yang ipynb py-kernel bekerja tanpa merestart semua notebook jupyter.
Abhimanu Kumar
scipy.statsjuga tidak berhasil juga menimbulkan kesalahan. Dalam kasus saya, saya memiliki file yang dipanggil multiprocessing.pydi direktori yang sama yang entah bagaimana berkonflik dengan koneksi soket kernel. Diperbaiki dengan mengganti nama file multiprocessing_.py(garis bawah tidak berfungsi).
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
>>> 

Jadi, coba restart shellnya!

Gurupad Hegde
sumber
13
Jawaban ajaib seperti ini tidak terlalu membantu karena tidak menyelesaikan masalah. Bagaimana jika restart tidak memperbaikinya?
es
3
Hanya menyebutkan bahwa ini terjadi pada saya dengan scikit-learn 0.15.2 yang dikompilasi terhadap numpy 1.9 dan python 2.7.
alexbw
2
Jika Anda tidak ingin memulai ulang, del sys.modules['sklearn.__check_build']; import sklearnjuga akan berfungsi
Jared Forsyth
15

Solusi saya untuk Python 3.6.5 64-bit Windows 10:

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

Tidak perlu memulai ulang baris perintah tetapi Anda dapat melakukan ini jika Anda mau. Saya butuh satu hari untuk memperbaiki bug ini. Semoga bantuan ini.

Loitd
sumber
1
Jika Anda pada dasarnya mengatakan bahwa versi terbaru dari sklearn memperbaiki bug, akan sangat membantu untuk menyatakan nomor versi sklearn mana yang Anda tingkatkan. Terima kasih.
rwp
Ini berhasil. Terima kasih.
nk abram
8

Setelah menginstal numpy, scipy, sklearn masih memiliki kesalahan

Larutan:

Menyiapkan PathVariabel Sistem untuk Python & PYTHONPATHVariabel Lingkungan

Variabel Sistem: tambahkan C:\Python34ke jalur Variabel Pengguna: tambahkan baru: (nama) PYTHONPATH(nilai)C:\Python34\Lib\site-packages;

pengguna3236650
sumber
buka C: \ Python34 \ Lib \ site-packages \ sklearn Klik dua kali init .py dan setup.py.
pengguna3236650
5

Biasanya ketika saya mendapatkan kesalahan semacam ini, membuka __init__.pyfile dan mengaduk-aduk membantu. Buka direktori C:\Python27\lib\site-packages\sklearndan pastikan ada sub-direktori yang disebut __check_buildsebagai langkah pertama. Di komputer saya (dengan instalasi sklearn yang berfungsi, Mac OSX, Python 2.7.3), saya memiliki __init__.py,, file setup.pyterkait .pyc, dan biner _check_build.so.

Mengaduk-aduk __init__.pydalam direktori tersebut, langkah selanjutnya saya akan ambil adalah untuk pergi ke sklearn/__init__.pydan komentar keluar pernyataan impor ----hal check_build hanya cek bahwa hal-hal yang dikompilasi dengan benar, itu tidak muncul untuk melakukan apa pun kecuali memanggil dikompilasi biner. Ini, tentu saja, dengan risiko Anda sendiri, dan (untuk memastikan) penyelesaiannya. Jika build Anda gagal, kemungkinan besar Anda akan segera mengalami masalah lain yang lebih besar.

BenDundee
sumber
Saya tidak memiliki _check_build.so di folder, Apa yang dapat saya lakukan untuk mendapatkan ini untuk python 2.7
ayush singhal
Apakah Anda mencoba mengomentari baris yang mencoba mengimpornya sklearn/__init__.py?
BenDundee
2
Untuk saat ini, Anda dapat mengomentari baris yang melakukan impor, yang akan membuat Anda berjalan. Bisakah Anda kemudian membuka masalah di pelacak masalah github.com/scikit-learn/scikit-learn/issues tampak seperti bug.
Andreas Mueller
2
FWIW Mengomentari importmasuk __init__.pytidak memperbaiki masalah tetapi menunjukkan kesalahan yang berbeda - pemasangan scipy saya tidak berhasil. Kesalahan dalam pertanyaan menutupi masalah sebenarnya
Dasar
3

Saya memiliki masalah yang sama di Windows. Selesaikan dengan menginstal Numpy + MKL dari http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy (disarankan untuk menginstal numpy + mkl sebelum paket lain yang bergantung padanya) seperti yang disarankan oleh jawaban ini .

pengguna2314737
sumber
3

Saya mengalami masalah saat mengimpor SKLEARN setelah menginstal versi 64bit Python 3.4 baru dari python.org.

Ternyata itu adalah modul SCIPY yang rusak, dan juga gagal ketika saya mencoba untuk "mengimpor scipy".

Solusi adalah mencopot pemasangan scipy dan memasangnya kembali dengan 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
>>>
John McCurdy
sumber
2

Jika Anda menggunakan Anaconda 2.7 64 bit, coba

conda upgrade scikit-learn

dan restart shell python, yang berfungsi untuk saya.

Edit kedua ketika saya menghadapi masalah yang sama dan menyelesaikannya:

conda upgrade scikit-learn

juga bekerja untuk saya

Statham
sumber
1

Tidak ada jawaban lain yang berhasil untuk saya. Setelah beberapa mengutak-atik saya mencopot pemasangan sklearn:

pip uninstall sklearn

Kemudian saya menghapus folder sklearn dari sini: (sesuaikan jalur ke sistem Anda dan versi python)

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

Dan menginstalnya dari roda dari situs ini: tautan

Kesalahan itu mungkin terjadi karena konflik versi dengan sklearn yang dipasang di tempat lain.

chross
sumber
1

Bagi saya, saya mengupgrade kode yang ada menjadi pengaturan baru dengan menginstal Anaconda dari yang segar dengan versi python terbaru (3.7) Untuk ini,

from sklearn import cross_validation, 
from sklearn.grid_search import GridSearchCV

untuk

from sklearn.model_selection import GridSearchCV,cross_validate
Siddaram H.
sumber
1

tidak perlu uninstall & kemudian instal ulang sklearn

coba ini:

from sklearn.model_selection import train_test_split
Cathrine
sumber
0

saya memiliki masalah yang sama saat menginstal ulang anaconda memecahkan masalah untuk saya

Mubashar Nazar
sumber
-1

Di windows:

Saya mencoba untuk menghapus sklearn dari shell: pip uninstall sklearn, dan instal ulang tapi tidak berhasil ..

solusinya:

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