web-dev-qa-db-de.com

ImportError: Der Name NUMPY_MKL kann nicht importiert werden

Ich versuche den folgenden einfachen Code auszuführen 

import scipy
scipy.test()

Ich erhalte jedoch den 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 benutze Python 2.7 unter Windows 10.

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

Jede Hilfe wird geschätzt.

88
Steve

Wenn Sie die Zeile betrachten, 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 (numpy mit Intel Math Kernel Library ) an. Das bedeutet, dass Sie die numpy von pip installiert haben, die scipy jedoch von einem vorkompilierten Archiv installiert wurde, das numpy+mkl erwartet.

Dieses Problem kann durch die Installation von numpy+mkl aus der Whl-Datei von hier einfach gelöst werden.

218
VMAtm

Installieren Sie numpy-1.11.0_XXX.whl (für Ihren Python) unter www.lfd.uci.edu/~gohlke/pythonlibs neu. Diese Datei hat den gleichen Namen und die gleiche Version, wenn sie mit der von mir vor dem 29.03.2016 heruntergeladenen Variante verglichen wird. Die Größe und der Inhalt unterscheiden sich jedoch von der alten Variante. Nach der Neuinstallation ist der Fehler verschwunden.

Zweite Option - Rückkehr zu scipy 0.17.0 von 0.17.1

P.S. Ich verwende die Windows-64-Bit-Version von Python 3.5.1. Daher kann ich nicht garantieren, dass Numpy für Python 2.7 bereits korrigiert ist. 

14
Andrew

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

from numpy._distributor_init import NUMPY_MKL 

und es hat funktioniert. Nicht sicher, ob dadurch andere Funktionen beschädigt werden

11
Lenny

Ich hatte das gleiche Problem bei der Installation von gensim unter Windows. Gensim ist auf Scipy und Scipy auf Numpy angewiesen. Alle drei zu machen ist ein wahrer Schmerz. Es hat lange gedauert, bis alle gleichzeitig arbeiten konnten.

Lösung: Wenn Sie Windows verwenden, stellen Sie sicher, dass Sie numpy + mkl anstelle von numpy . Installieren. Wenn Sie scipy und numpy bereits installiert haben, deinstallieren Sie sie und verwenden Sie dann "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 ​​stehen Sie für die verwendete Python-Version. Laden Sie also die entsprechende Version herunter.

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

Dein Numpy und Scipy sollten jetzt funktionieren. Diese Binaries von Christoph Gohlke machen die Installation von Python-Paketen unter Windows sehr einfach. Stellen Sie jedoch sicher, dass Sie alle abhängigen Pakete von dort herunterladen.

7
user3046442

Ich habe nicht genug Reputation, 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 verschwendet, und vielleicht haben auch andere Leute damit zu kämpfen.

Also hat für mich die Version cp36 funktioniert, die ich hier heruntergeladen habe: https://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy da ich Python 3.6 benutze. 8.

Dann habe ich numpy deinstalliert:

pip uninstall numpy 

Dann habe ich numpy + mkl installiert:

pip install <destination of your .whl file>
1
Adrian

Der Grund für den Fehler ist, dass Sie Ihre numpy-Bibliothek aktualisiert haben. Einige Funktionen von scipy sind für die aktuelle Version erforderlich, damit sie ausgeführt werden kann und die in scipy möglicherweise nicht gefunden werden. Aktualisieren Sie Ihre Scipy-Bibliothek einfach mit python -m pip install scipy --upgrade. Ich war mit dem gleichen Fehler konfrontiert und diese Lösung funktionierte auf meinem Python 3.5.

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

Die SciPy-Bibliothek ist von NumPy abhängig, die eine bequeme und schnelle N-dimensionale Array-Bearbeitung ermöglicht.

Versuchen Sie also, das Paket numpy für Python wie mit scipy zu installieren.

0

Ich habe kürzlich die gleiche Fehlermeldung erhalten, als ich versuchte, Scipy in Jupyter (python3.x, win10) zu laden, obwohl ich gerade ein Upgrade auf "numpy-1.13.3 + mkl through pip" durchgeführt habe. Die Lösung bestand darin, einfach das scipy-Paket (von v0.19 auf v1.0.0) zu aktualisieren.

0
E. V.

ja, einfach numpy neu installieren, es funktioniert.

0
feng ling