ImportError: Name NUMPY_MKL kann nicht importiert werden


92

Ich versuche, den folgenden einfachen Code auszuführen

import scipy
scipy.test()

Aber ich bekomme folgenden Fehler

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

Ich verwende Python 2.7 unter Windows 10.

Ich habe installiert, scipyaber das scheint das Problem nicht zu lösen

Jede Hilfe wird geschätzt.

Antworten:


223

Wenn Sie sich die Zeile ansehen, die den Fehler verursacht, sehen Sie Folgendes:

from numpy._distributor_init import NUMPY_MKL  # requires numpy+mkl

Dieser Zeilenkommentar gibt die Abhängigkeit als numpy+mkl( numpymit Intel Math Kernel Library ) an. Dies bedeutet, dass Sie das numpyby installiert haben pip, das scipyjedoch vom vorkompilierten Archiv installiert wurde, was erwartet wird numpy+mkl.

Dieses Problem kann einfach durch Installation für numpy+mklvon whl-Datei von hier gelöst werden .


5
Diese Lösung funktionierte für mich mit Python 2.7.10 unter Windows
ScottMcC

2
@VMAtm Können wir beide Installationen von numpy (von pip) und numpy + mkl (von vorkompilierten Bibliotheken) in denselben virtuellen Umgebungen haben?
StrawhatLuffy

Soweit ich weiß, lautet die Antwort nein. Sie deinstallieren sich gegenseitig, da es am Ende eine Nummer ist, nur mit einigen Prozessoranweisungen (wenn ich es gut verstehe)
VMAtm

2
Die Lösung funktionierte perfekt unter Python 2.7 Windows 7. Hat mir viel Zeit gespart, danke ein Dutzend!
Sel

pip install <numpy Radweg> --user hat für mich gearbeitet, als ich ein Berechtigungsproblem bekam.
Amit Kumar

14

Installieren Sie numpy-1.11.0_XXX.whl (für Ihren Python) von www.lfd.uci.edu/~gohlke/pythonlibs neu . Diese Datei hat im Vergleich zu der von mir am 29.03.2016 heruntergeladenen Variante den gleichen Namen und die gleiche Version, aber Größe und Inhalt unterscheiden sich von der alten Variante. Nach der Neuinstallation verschwand der Fehler.

Zweite Option - kehren Sie von 0.17.1 zu scipy 0.17.0 zurück

PS Ich verwende die Windows 64-Bit-Version von Python 3.5.1 und kann daher nicht garantieren, dass Numpy für Python 2.7 bereits korrigiert ist.


11

Ich bin nicht sicher, ob dies eine gute Lösung ist, aber es hat den Fehler behoben. Ich habe die Zeile auskommentiert:

from numpy._distributor_init import NUMPY_MKL 

und es hat funktioniert. Ich bin mir nicht sicher, ob dies dazu führen wird, dass andere Funktionen nicht mehr funktionieren


3
:) Das Interessante ist, dass es wirklich funktioniert und es in der Linux-Version von scipy keine solche Zeile gibt.
dzmitry

7

Ich hatte das gleiche Problem bei der Installation von Gensim unter Windows. Gensim ist abhängig von scipy und scipy von numpy. Alle drei zum Laufen zu bringen ist ein wahrer Schmerz. Ich habe viel Zeit gebraucht, um alle dort zur gleichen Zeit arbeiten zu lassen.

Lösung: Wenn Sie Windows verwenden, stellen Sie sicher, dass Sie numpy + mkl anstatt nur numpy installieren. Wenn Sie scipy und numpy bereits installiert haben, deinstallieren Sie es mit "pip uninstall scipy" und "pip uninstall numpy".

Laden Sie dann numpy-1.13.1 + mkl-cp34-cp34m-win32.whl von http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy herunter und installieren Sie es mit pip install numpy-1.13.1 + mkl- cp34-cp34m-win32.wh Hinweis: In cp34-cp34m 34 ​​wird die von Ihnen verwendete Python-Version dargestellt. Laden Sie daher die entsprechende Version herunter.

Laden Sie jetzt scipy von http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy (geeignete Version für Python und System) herunter und installieren Sie es mit "pip install scipy - 0.19.1 - cp34 - cp34m - win32". whl "

Dein Numpy und Scipy sollten jetzt beide funktionieren. Diese Binärdateien von Christoph Gohlke machen es sehr einfach, Python-Pakete unter Windows zu installieren. Stellen Sie jedoch sicher, dass Sie alle abhängigen Pakete von dort herunterladen.


Ich kehrte von 3.6 zu Python 3.4 zurück, da ich Probleme bei der Installation von scipy mit Python 3.6 hatte
user3046442

3

Ich habe nicht genug Ruf, um einen Kommentar abzugeben, aber ich möchte hinzufügen, dass die CP-Nummer der .whl-Datei für Ihre Python-Version steht.

cp35 -> Python 3.5.x.

cp36 -> Python 3.6.x.

cp37 -> Python 3.7.x.

Ich denke, es ist ziemlich offensichtlich, aber trotzdem habe ich fast eine Stunde damit verschwendet, und vielleicht haben auch andere Leute damit zu kämpfen.

Also arbeitete für mich die Version cp36, die ich hier heruntergeladen habe: https://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy, da ich Python 3.6.8 verwende.

Dann habe ich numpy deinstalliert:

pip uninstall numpy 

Dann habe ich numpy + mkl installiert:

pip install <destination of your .whl file>

2

Der Grund für den Fehler ist, dass Sie Ihre Numpy-Bibliothek aktualisiert haben, für deren Ausführung einige Funktionen von scipy erforderlich sind, die in der aktuellen Version möglicherweise nicht in scipy enthalten sind. Aktualisieren Sie einfach Ihre scipy-Bibliothek mit python -m pip install scipy --upgrade. Ich hatte den gleichen Fehler und diese Lösung funktionierte auf meinem Python 3.5.


0

In Ihrem Protokoll ist klar, dass das numpyPaket fehlt. Wie im PyPI-Paket erwähnt :

Die SciPy-Bibliothek hängt von NumPy ab, das eine bequeme und schnelle Manipulation von N-dimensionalen Arrays ermöglicht.

Versuchen numpySie also, das Paket für Python so zu installieren , wie Sie es getan haben scipy.


3
Ich hatte das auch installiert. Aus irgendeinem Grund musste ich Spyder schließen und erneut ausführen, und das löste das Problem. Danke trotzdem.
Steve

2
Dieser Fehler tritt auch dann auf, wenn numpy vorhanden ist, wenn numpy nicht mit MKL-Unterstützung kompiliert wurde.
KDN

Hat funktioniert. danke mein scikit war von lfd.uci.edu/~gohlke/pythonlibs Also musste ich die numpy aus der gleichen Distribution verwenden
Anuvrat Tiku

0

Ich habe kürzlich den gleichen Fehler beim Laden von scipy in jupyter (python3.x, win10) erhalten, obwohl ich gerade über pip auf numpy-1.13.3 + mkl aktualisiert habe. Die Lösung bestand darin, einfach das scipy-Paket zu aktualisieren (von v0.19 auf v1.0.0).


Ich wollte nur eine Lösung bereitstellen, die ich verwendet habe, als ich auf ein sehr ähnliches Problem gestoßen bin.
EV

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.