ImportError: не вдається імпортувати ім'я NUMPY_MKL


92

Я намагаюся запустити наступний простий код

import scipy
scipy.test()

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

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python27\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 586, in runfile
    execfile(filename, namespace)
  File "C:/Users/Mustafa/Documents/My Python Code/SpectralGraphAnalysis/main.py", line 8, in <module>
    import scipy
  File "C:\Python27\lib\site-packages\scipy\__init__.py", line 61, in <module>
    from numpy._distributor_init import NUMPY_MKL  # requires numpy+mkl
ImportError: cannot import name NUMPY_MKL

Я використовую python 2.7 під Windows 10.

Я встановив, scipyале це, здається, не вирішує проблему

Будь-яка допомога вдячна.

Відповіді:


223

Якщо ви подивитеся на рядок, що викликає помилку, ви побачите таке:

from numpy._distributor_init import NUMPY_MKL  # requires numpy+mkl

Цей коментар до рядка визначає залежність як numpy+mkl( numpyз бібліотекою ядра Intel Math ). Це означає, що ви встановили numpyby pip, але цей scipyвстановив попередньо скомпільований архів, який очікує numpy+mkl.

Ця проблема може бути легко вирішена з допомогою установки для numpy+mklз WHL файлу з тут .


5
Це рішення працювало для мене під управлінням Python 2.7.10 у Windows
ScottMcC

2
@VMAtm Чи можемо ми мати як установки numpy (з pip), так і numpy + mkl (з попередньо скомпільованих libs) в одних і тих самих virtualenvs?
StrawhatLuffy

Наскільки мені відомо, відповідь - ні. Вони невстановлюють один одного, оскільки це кінець numpy в кінці, лише з деякими інструкціями процесора (якщо я це добре розумію)
VMAtm

2
Рішення чудово працювало на python 2.7 windows 7. Заощадило мені багато часу, дякую дюжині!
сел

pip install <numpy wheel path> - користувач працював у мене, коли я отримував питання дозволу.
Аміт Кумар,

14

Переінсталюйте numpy-1.11.0_XXX.whl (для вашого Python) з www.lfd.uci.edu/~gohlke/pythonlibs . Цей файл має однакову назву та версію, якщо порівнювати із варіантом, завантаженим мною раніше 29.03.2016, але його розмір та вміст відрізняються від старого варіанту. Після повторної установки помилка зникла.

Другий варіант - повернутися до scipy 0.17.0 з 0.17.1

PS Я використовую 64-розрядну версію Python 3.5.1 для Windows, тому не можу гарантувати, що numpy для Python 2.7 вже виправлений.


11

Я не впевнений, що це хороше рішення, але воно видалило помилку. Я прокоментував рядок:

from numpy._distributor_init import NUMPY_MKL 

і це спрацювало. Не впевнений, що це призведе до поломки інших функцій


3
:) Найцікавіше, що це справді працює, і в Linux-версії scipy такого рядка немає.
dzmitry

7

У мене була та ж проблема під час встановлення gensim на Windows. Генсім залежить від схиппі, а схиппі від нумпі. Примусити всіх трьох працювати - справжній біль. Мені знадобилося багато часу, щоб змусити всіх там працювати одночасно.

Рішення: Якщо ви використовуєте Windows, переконайтеся, що ви встановили numpy + mkl, а не просто numpy. Якщо ви вже встановили scipy та numpy, видаліть, а потім використовуйте "pip uninstall scipy" та "pip uninstall numpy"

Потім завантажте numpy-1.13.1 + mkl-cp34-cp34m-win32.whl з http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy та встановіть за допомогою pip install numpy-1.13.1 + mkl- cp34-cp34m-win32.wh Примітка: у cp34-cp34m 34 ​​представлена ​​версія python, яку ви використовуєте, тому завантажте відповідну версію.

Тепер завантажте scipy з http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy (відповідна версія для вашого python та системи) та встановіть за допомогою "pip install scipy ‑ 0.19.1 ‑ cp34 ‑ cp34m ‑ win32. "

Зараз і ваш Numpy, і Scipy повинні працювати. Ці двійкові файли від Крістофа Гольке дозволяють дуже легко встановлювати пакети python на вікна. Але обов’язково завантажте звідти всі залежні пакети.


Я повернувся до python 3.4 з 3.6, оскільки у мене виникали проблеми з установкою scipy з python 3.6
user3046442

3

У мене недостатньо репутації для коментарів, але я хочу додати, що номер cp файлу .whl означає вашу версію python.

cp35 -> Python 3.5.x

cp36 -> Python 3.6.x

cp37 -> Python 3.7.x

Я думаю, що це досить очевидно, але все-таки я витратив майже годину через це, і, можливо, інші люди теж борються з цим.

Тож для мене працювала версія cp36, яку я завантажив тут: https://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy, оскільки я використовую Python 3.6.8.

Потім я видалив numpy:

pip uninstall numpy 

Потім я встановив numpy + mkl:

pip install <destination of your .whl file>

2

Причиною помилки є те, що ви оновили вашу бібліотеку numpy, у якій є деякі функції від scipy, які потрібні поточній версії для її запуску, яких у scipy не знайти. Просто оновіть свою бібліотеку scipy за допомогою python -m pip install scipy --upgrade. Я зіткнувся з тією ж помилкою, і це рішення працювало на моєму python 3.5.


0

З вашого журналу ясно, що numpyпакунок відсутній. Як згадується в пакеті PyPI :

Бібліотека SciPy залежить від NumPy, що забезпечує зручну та швидку маніпуляцію з N-вимірними масивами.

Отже, спробуйте встановити numpyпакет для python, як і раніше scipy.


3
Я також встановив це. З якоїсь причини мені довелося закрити Spyder і запустити його знову, і це вирішило проблему. Все одно, дякую.
Стів

2
Ця помилка виникає, навіть якщо присутній numpy, якщо numpy не був скомпільований з підтримкою MKL.
KDN

Працювали. дякую, мій scikit був від lfd.uci.edu/~gohlke/pythonlibs Тож довелося використовувати numpy з того ж дистрибутиву
Anuvrat Tiku

0

Нещодавно я отримав ту саму помилку при спробі завантажити scipy у jupyter (python3.x, win10), хоча щойно оновившись до numpy-1.13.3 + mkl через pip. Рішенням було просто оновити пакет scipy (з v0.19 на v1.0.0).


Я просто хотів надати виправлення, яке я використовував, коли стикався з дуже подібною проблемою.
EV

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