ImportError khi nhập từ sklearn: không thể nhập tên check_build


117

Tôi gặp lỗi sau khi cố gắng nhập từ 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

Tôi đang sử dụng python 2.7, scipy-0.12.0b1 superpack, numpy-1.6.0 superpack, scikit-learning-0.11 Tôi có một máy windows 7

Tôi đã kiểm tra một số câu trả lời cho vấn đề này nhưng không có câu trả lời nào đưa ra cách giải quyết lỗi này.


Hãy thử cập nhật scikit-learning lên phiên bản hiện tại (0.13).
adrianp

bây giờ tôi nhận được lỗi sau
ayush singhal

ImportError: không thể tên nhập khẩu __check_build thay vì check_build
Ayush Singhal

Tôi đã cập nhật lên scikit 0.13
ayush singhal

Có ai đó có giải pháp cho vấn đề của tôi không?
ayush singhal

Câu trả lời:


151

Làm việc cho tôi sau khi cài đặt scipy.


25
Cộng với khởi động lại trình bao python. :)
Mannu

1
Kiểm tra xem có tệp có tên "sklearn" trong cùng thư mục hay không. Thử chạy từ một thư mục khác. Đã giải quyết nó cho tôi (lỗi của tôi). Tìm tệp với <ls | grep -i "sklearn">
Punnerud

@Mannu Có; Ngoài ra đối với tôi trên sổ ghi chép jupyter, chỉ cần khởi động lại (tắt và nhấp vào mở lại) mà py-kernel ipynb đã hoạt động mà không cần khởi động lại tất cả sổ ghi chép jupyter.
Abhimanu Kumar

scipy.statscũng không hoạt động cũng nêu ra một lỗi. Trong trường hợp của tôi, tôi có một tệp được gọi multiprocessing.pytrong cùng một thư mục bằng cách nào đó xung đột với kết nối socket của hạt nhân. Đã sửa lỗi bằng cách đổi tên tệp multiprocessing_.py(gạch dưới ở đầu không hoạt động).
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
>>> 

Vì vậy, chỉ cần thử khởi động lại shell!


13
Những câu trả lời ma thuật như thế này không thực sự hữu ích vì chúng không giải quyết được vấn đề. Nếu khởi động lại không khắc phục được thì sao?
icedwater

3
Chỉ cần đề cập rằng điều này đã xảy ra với tôi với scikit-learning 0.15.2 được biên dịch dựa trên numpy 1.9 và python 2.7.
alexbw

2
Nếu bạn không muốn khởi động lại, del sys.modules['sklearn.__check_build']; import sklearncũng sẽ hoạt động
Jared Forsyth

15

Giải pháp của tôi cho Python 3.6.5 64-bit Windows 10:

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

Không cần khởi động lại dòng lệnh nhưng bạn có thể làm điều này nếu muốn. Tôi đã mất một ngày để sửa lỗi này. Hy vọng điều này giúp đỡ.


1
Nếu về cơ bản, bạn đang nói rằng phiên bản mới nhất của sklearn sửa được lỗi, sẽ rất hữu ích nếu bạn nêu rõ số phiên bản của sklearn mà bạn nâng cấp lên. Cảm ơn.
rwp

Điều này đã hiệu quả. Cảm ơn bạn.
nk abram

8

Sau khi cài đặt numpy, scipy, sklearn vẫn có lỗi

Giải pháp:

Thiết lập Pathbiến hệ thống cho Python và PYTHONPATHbiến môi trường

Biến hệ thống: thêm C:\Python34vào đường dẫn Biến người dùng: thêm mới: (tên) PYTHONPATH(giá trị)C:\Python34\Lib\site-packages;


chuyển đến C: \ Python34 \ Lib \ site-pack \ sklearn Nhấp đúp vào init .py và setup.py.
user3236650

5

Thông thường, khi tôi gặp những lỗi kiểu này, việc mở __init__.pytệp và xem xét xung quanh sẽ giúp ích. Đi tới thư mục C:\Python27\lib\site-packages\sklearnvà đảm bảo rằng có một thư mục con được gọi __check_buildlà bước đầu tiên. Trên máy tính của tôi (với một cài đặt làm việc sklearn, Mac OSX, Python 2.7.3) Tôi có __init__.py, setup.py, liên quan của họ .pyctập tin, và một số nhị phân _check_build.so.

Xem __init__.pyxét thư mục trong thư mục đó, bước tiếp theo tôi sẽ thực hiện là truy cập sklearn/__init__.pyvà nhận xét câu lệnh nhập --- công cụ check_build chỉ kiểm tra xem mọi thứ đã được biên dịch chính xác chưa, nó dường như không phải làm gì ngoài việc gọi một biên dịch trước nhị phân. Tất nhiên, đây là rủi ro của riêng bạn, và (chắc chắn) là một công việc xung quanh. Nếu quá trình xây dựng của bạn không thành công, bạn có thể sẽ sớm gặp phải các vấn đề khác lớn hơn.


Tôi không có _check_build.so trong thư mục, tôi có thể làm gì để có được điều này cho python 2.7
Ayush Singhal

Bạn đã thử nhận xét dòng cố gắng nhập nó vào sklearn/__init__.pychưa?
BenDundee

2
Hiện tại, bạn có thể nhận xét dòng thực hiện nhập, dòng đó sẽ giúp bạn chạy. Sau đó, bạn có thể vui lòng mở sự cố trong trình theo dõi sự cố github.com/scikit-learn/scikit-learn/issues có vẻ như lỗi không.
Andreas Mueller

2
FWIW Nhận xét bên importtrong __init__.pykhông khắc phục được sự cố nhưng đã để lộ một lỗi khác - cài đặt scipy của tôi không thành công. Lỗi trong câu hỏi đã che dấu vấn đề thực sự
Cơ bản


3

Tôi gặp sự cố khi nhập SKLEARN sau khi cài đặt phiên bản 64bit mới của Python 3.4 từ python.org.

Hóa ra đó là mô-đun SCIPY đã bị hỏng và alos đã bị lỗi khi tôi cố gắng "nhập scipy".

Giải pháp là gỡ cài đặt scipy và cài đặt lại bằng 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

Nếu bạn sử dụng Anaconda 2.7 64 bit, hãy thử

conda upgrade scikit-learn

và khởi động lại trình bao python, điều đó phù hợp với tôi.

Lần chỉnh sửa thứ hai khi tôi gặp phải vấn đề tương tự và đã giải quyết nó:

conda upgrade scikit-learn

cũng làm việc cho tôi


1

Không có câu trả lời nào khác phù hợp với tôi. Sau khi mày mò, tôi đã gỡ cài đặt sklearn:

pip uninstall sklearn

Sau đó, tôi đã xóa thư mục sklearn khỏi đây: (điều chỉnh đường dẫn đến hệ thống và phiên bản python của bạn)

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

Và cài đặt nó từ bánh xe từ trang web này: liên kết

Có thể lỗi xảy ra do xung đột phiên bản với sklearn được cài đặt ở một nơi khác.


1

Đối với tôi, tôi đang nâng cấp mã hiện có thành thiết lập mới bằng cách cài đặt Anaconda từ mới với phiên bản python mới nhất (3.7) Đối với điều này,

from sklearn import cross_validation, 
from sklearn.grid_search import GridSearchCV

đến

from sklearn.model_selection import GridSearchCV,cross_validate

1

không cần gỡ cài đặt và sau đó cài đặt lại sklearn

thử cái này:

from sklearn.model_selection import train_test_split

0

tôi đã gặp vấn đề tương tự khi cài đặt lại anaconda đã giải quyết được vấn đề cho tôi


-1

Trong cửa sổ:

Tôi đã cố gắng xóa sklearn khỏi shell: pip gỡ cài đặt sklearn và cài đặt lại nhưng không hoạt động ..

giải pháp:

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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.