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.


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.


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!


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.


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;


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.


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

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


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.


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

1

tidak perlu uninstall & kemudian instal ulang sklearn

coba ini:

from sklearn.model_selection import train_test_split

0

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


-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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.