web-dev-qa-db-fra.com

ImportError: impossible d'importer le nom NUMPY_MKL

J'essaie de lancer le code simple suivant 

import scipy
scipy.test()

Mais j'obtiens l'erreur suivante

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

J'utilise Python 2.7 sous Windows 10.

J'ai installé scipy mais cela ne semble pas résoudre le problème

Toute aide est appréciée.

88
Steve

Si vous regardez la ligne qui cause l'erreur, vous verrez ceci:

from numpy._distributor_init import NUMPY_MKL  # requires numpy+mkl

Ce commentaire de ligne indique la dépendance sous la forme numpy+mkl (numpy avec Intel Math Kernel Library ). Cela signifie que vous avez installé numpy par pip, mais que scipy a été installé par une archive précompilée, qui attend numpy+mkl.

Ce problème peut être facilement résolu par l’installation de numpy+mkl à partir du fichier whl à partir de ici .

218
VMAtm

Réinstallez numpy-1.11.0_XXX.whl (pour votre Python) à partir de www.lfd.uci.edu/~gohlke/pythonlibs . Ce fichier porte le même nom et la même version que la variante téléchargée par moi le 29.03.2016, mais sa taille et son contenu diffèrent de ceux de l'ancienne variante. Après l'erreur de réinstallation a disparu.

Seconde option - revenir à scipy 0.17.0 à partir de 0.17.1

P.S. J'utilise la version Windows 64 bits de Python 3.5.1, je ne peux donc pas garantir que numpy pour Python 2.7 est déjà corrigé. 

14
Andrew

Je ne suis pas sûr que ce soit une bonne solution mais cela a effacé l'erreur. J'ai commenté la ligne: 

from numpy._distributor_init import NUMPY_MKL 

et cela a fonctionné. Pas sûr que cela cause d'autres fonctionnalités à casser si

11
Lenny

J'ai eu le même problème lors de l'installation de gensim sur Windows. Gensim dépend de Scipy et Scipy de Numpy. Faire travailler les trois est une vraie douleur. Il m'a fallu beaucoup de temps pour que tout y travaille en même temps.

Solution: Si vous utilisez Windows, installez numpy + mkl au lieu de numpy . Si vous avez déjà installé scipy et numpy, désinstallez-le, puis utilisez "pip uninstall scipy" et "pip uninstall numpy".

Puis téléchargez numpy-1.13.1 + mkl-cp34-cp34m-win32.whl à partir de http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy Et installez-le à l'aide de pip install numpy -1.13.1 + mkl-cp34-cp34m-win32.wh Remarque: dans cp34-cp34m 34 ​​représente la version de python que vous utilisez, téléchargez donc la version correspondante.

Téléchargez maintenant scipy à partir de http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy (version appropriée pour votre python et votre système) Et installez-vous à l'aide de "pip install scipy ‑ 0.19.1 ‑Cp34 ‑ cp34m ‑ win32.whl "

Votre Numpy et Scipy devraient tous les deux fonctionner maintenant. Ces binaires de Christoph Gohlke facilitent l’installation de paquets Python sous Windows. Mais assurez-vous de télécharger tous les paquets dépendants à partir de là.

7
user3046442

Je n'ai pas assez de réputation pour commenter, mais je souhaite ajouter que le numéro cp du fichier .whl correspond à votre version python.

cp35 -> Python 3.5.x

cp36 -> Python 3.6.x

cp37 -> Python 3.7.x

Je pense que c'est assez évident, mais j'ai néanmoins perdu presque une heure à cause de cela et peut-être que d'autres personnes ont également du mal à le faire.

Donc, pour moi, la version cp36 que j’ai téléchargée ici fonctionne: https://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy puisque j’utilise Python 3.6. 8.

Puis j'ai désinstallé numpy:

pip uninstall numpy 

Puis j'ai installé numpy + mkl:

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

Cette erreur s’explique par le fait que vous avez mis à niveau votre bibliothèque numpy, dont certaines fonctionnalités de scipy sont requises par la version actuelle pour pouvoir être exécutées. Il suffit de mettre à jour votre bibliothèque scipy à l’aide de python -m pip install scipy --upgrade. Je faisais face à la même erreur et cette solution a fonctionné sur mon python 3.5.

Dans votre journal, il est clair que le paquet numpy est manquant. Comme mentionné dans le package PyPI :

La bibliothèque SciPy dépend de NumPy, qui permet une manipulation pratique et rapide des tableaux à N dimensions.

Donc, essayez d'installer le paquet numpy pour python comme vous l'avez fait avec scipy.

0
manoj prashant k

J'ai récemment eu la même erreur en essayant de charger scipy dans jupyter (python3.x, win10), bien que je sois juste passé de numpy-1.13.3 + mkl via pip La solution consistait simplement à mettre à jour le paquet scipy (de v0.19 à v1.0.0).

0
E. V.

oui, réinstallez numpy, cela fonctionne.

0
feng ling