ImportError при імпорті із sklearn: неможливо імпортувати ім'я check_build


117

Під час імпорту із 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

Я використовую python 2.7, scipy-0.12.0b1 superpack, numpy-1.6.0 superpack, scikit-learn-0,11 У мене є машина Windows 7

Я перевірив кілька відповідей на це питання, але жодна з них не дає виходу з цієї помилки.


Спробуйте оновити scikit-learn до поточної версії (0.13).
Адріанп

тепер я отримую таку помилку
ayush singhal

ImportError: не можна імпортувати ім'я __check_build замість check_build
ayush singhal

Я зробив оновлення до scikit 0,13
аюш сингхал

У когось є рішення моєї проблеми?
ayush singhal

Відповіді:


151

Працював для мене після встановлення scipy.


25
Плюс перезапуск оболонки пітона. :)
Mannu

1
Перевірте, чи є в цій же папці файл під назвою "sklearn". Спробуйте запустити з іншої папки. Вирішили це для мене (моя вина). Знайдіть файл з <ls | grep -i "sklearn">
Punnerud

@Mannu Так; Також для мене на ноутбуці "Юпітер", просто перезапустивши (вимкнувшись і знову натисніть), щоб ipynb py-ядро працювало, не перезавантажуючи весь ноутбук юпітера.
Абхіману Кумар

scipy.statsтакож не працював також підняв помилку. У моєму випадку у мене був файл, викликаний multiprocessing.pyу тому самому каталозі, який якимось чином суперечив з'єднанню ядра ядра. Виправлено шляхом перейменування файлу multiprocessing_.py(підкреслення не працювало).
піланг

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

Отже, просто спробуйте перезапустити оболонку!


13
Магічні відповіді на кшталт цієї не дуже корисні, оскільки вони не вирішують проблему. Що робити, якщо перезапуск цього не виправить?
крижана вода

3
Згадуючи лише про те, що це сталося зі мною scikit-learn 0.15.2, складений проти numpy 1.9 та python 2.7.
alexbw

2
Якщо ви не хочете перезавантажувати, del sys.modules['sklearn.__check_build']; import sklearnтакож буде працювати
Джаред Форсайт

15

Моє рішення для 64-розрядної Windows 10 для Python 3.6.5:

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

Не потрібно перезапускати командний рядок, але ви можете це зробити, якщо хочете. Мені знадобилося один день, щоб виправити цю помилку. Сподіваюся, що це допоможе.


1
Якщо ви по суті говорите, що остання версія sklearn виправляє помилку, було б корисно вказати, до яких номерів версій sklearn ви оновите. Дякую.
rwp

Це спрацювало. Дякую.
nk abram

8

Після установки numpy, scipy, по- sklearn , як і раніше має помилку

Рішення:

Налаштування Pathзмінної системи для змінної Python & PYTHONPATHEnvironment

Системні змінні: додати C:\Python34в шлях Змінні користувача: додати нове: (ім'я) PYTHONPATH(значення)C:\Python34\Lib\site-packages;


перейдіть до C: \ Python34 \ Lib \ site-пакети \ sklearn Двічі клацніть на init .py та setup.py.
користувач3236650

5

Зазвичай, коли я отримую подібні помилки, __init__.pyдопомагає відкриття файлу та перекочування. Перейдіть до каталогу C:\Python27\lib\site-packages\sklearnі переконайтеся, що є підкаталог, який називається __check_buildпершим кроком. На моїй машині (з робочою установкою sklearn, Mac OSX, Python 2.7.3) у мене є __init__.py, setup.pyпов'язані з ними .pycфайли та двійковий файл _check_build.so.

Оглянувши __init__.pyв цьому каталозі, наступним кроком, який я б взяв, є перейти до sklearn/__init__.pyта прокоментувати заяву про імпорт --- речі check_build просто перевіряють, що речі були складені правильно, але, здається, нічого не робити, крім виклику попередньо складеного файлу двійкові. Це, звичайно, на власний ризик, і (напевне) обхід. Якщо ваша збірка не вдалася, ви, швидше за все, незабаром зіткнетеся з іншими, більшими проблемами.


У мене немає _check_build.so в папці, що я можу зробити, щоб отримати це для python 2.7
ayush singhal

Ви спробували прокоментувати рядок, який намагається імпортувати sklearn/__init__.py?
BenDundee

2
На даний момент ви можете прокоментувати рядок, який здійснює імпорт, який повинен вас запустити. Чи можете ви потім відкрити проблему в трекері випусків github.com/scikit-learn/scikit-learn/isissue виглядає як помилка.
Андреас Мюллер

2
FWIW Коментуючи importin __init__.py, не виправив проблему, але виявив іншу помилку - мою установку scipy не вдалося. Помилка в питанні маскувала справжню проблему
Basic


3

У мене виникли проблеми з імпортом SKLEARN після встановлення нової 64-бітної версії Python 3.4 з python.org.

Виявляється, що модуль SCIPY був зламаний, і не вдалося, коли я спробував "імпортувати науку".

Рішенням було видалення scipy та перевстановлення його за допомогою 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

Якщо ви використовуєте Anaconda 2.7 64 біт, спробуйте

conda upgrade scikit-learn

і перезавантажте оболонку python, яка працює для мене.

Друга редакція, коли я зіткнувся з тією ж проблемою і вирішив її:

conda upgrade scikit-learn

також працює для мене


1

Жодна з інших відповідей не працювала на мене. Після деякого майстерності я видалив склеарн:

pip uninstall sklearn

Потім я видалив тут папку sklearn: (налаштуйте шлях до вашої системи та версії python)

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

І встановлено це з колеса з цього сайту: посилання

Помилка була, ймовірно, через конфлікт версії зі sklearn, встановленим десь в іншому місці.


1

Для мене я модернізував існуючий код до нового налаштування, встановивши Anaconda з свіжої з останньою версією python (3.7).

from sklearn import cross_validation, 
from sklearn.grid_search import GridSearchCV

до

from sklearn.model_selection import GridSearchCV,cross_validate

1

не потрібно видаляти та повторно встановлювати sklearn

спробуйте це:

from sklearn.model_selection import train_test_split

0

У мене була та сама проблема, що перевстановлення анаконди вирішило проблему для мене


-1

У вікнах:

Я спробував видалити sklearn з оболонки: pip видалити sklearn та повторно встановити його, але не працює ..

рішення:

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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.