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.

Steve
quelle

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 .

VMAtm
quelle
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.

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

Lenny
quelle
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.

user3046442
quelle
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>
Adrian
quelle
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.

Simbarashe Mupfururirwa
quelle
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.

manoj prashant k
quelle
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).

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

Ja, einfach numpy neu installieren, es funktioniert.

feng ling
quelle