93 votes

ImportError : impossible d'importer le nom NUMPY_MKL

J'essaie d'exécuter 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.

223voto

VMAtm Points 8401

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

from numpy._distributor_init import NUMPY_MKL  # requires numpy+mkl

Le commentaire de cette ligne indique que la dépendance est la suivante numpy+mkl ( numpy con Bibliothèque du noyau mathématique d'Intel ). Cela signifie que vous avez installé le numpy par pip mais le scipy a été installé par une archive précompilée, qui s'attend à ce que numpy+mkl .

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

5 votes

Cette solution a fonctionné pour moi avec Python 2.7.10 sous Windows.

2 votes

@VMAtm Peut-on avoir les deux installations de numpy(à partir de pip) et numpy+mkl(à partir des librairies précompilées) dans le même virtualenvs ?

0 votes

Pour autant que je sache, la réponse est non. Ils se désinstallent l'un l'autre, car il s'agit d'un numpy à la fin, seulement avec quelques instructions de processeur (si je comprends bien).

14voto

Andrew Points 502

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

Deuxième option - revenir à scipy 0.17.0 à partir de 0.17.1

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

11voto

Lenny Points 185

Je ne sais pas si c'est une bonne solution mais elle a permis de supprimer l'erreur. J'ai commenté la ligne :

from numpy._distributor_init import NUMPY_MKL 

et ça a marché. Je ne sais pas si cela va entraîner la rupture d'autres fonctionnalités.

3 votes

:) La chose intéressante est que cela fonctionne vraiment et qu'il n'y a pas de telle ligne dans la version linux de scipy.

7voto

user3046442 Points 159

J'ai eu le même problème en installant gensim sous Windows. Gensim est dépendant de scipy et scipy de numpy. Faire fonctionner les trois est un vrai casse-tête. Il m'a fallu beaucoup de temps pour les faire fonctionner en même temps.

Solution : Si vous utilisez Windows, assurez-vous d'installer numpy+mkl au lieu de numpy seul. Si vous avez déjà installé scipy et numpy, désinstallez-les en utilisant "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 en utilisant pip install numpy-1.13.1+mkl-cp34-cp34m-win32.wh Note : dans cp34-cp34m 34 représente la version de python que vous utilisez, donc téléchargez la version appropriée.

Maintenant, téléchargez scipy à partir de http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy (version appropriée pour votre python et votre système) et installez avec "pip install scipy0.19.1cp34cp34mwin32.whl".

Votre numpy et Scipy devraient fonctionner maintenant. Ces binaires de Christoph Gohlke permettent d'installer très facilement des paquets python sous Windows. Mais assurez-vous de télécharger tous les paquets dépendants à partir de là.

0 votes

Je suis passé de la version 3.6 à la version 3.4 de python car j'avais des problèmes pour installer scipy avec python 3.6.

2voto

La raison de l'erreur est que vous avez mis à jour votre bibliothèque numpy dont certaines fonctionnalités de scipy sont requises par la version actuelle pour qu'elle fonctionne et qui peuvent ne pas être trouvées dans scipy. Mettez simplement à jour votre bibliothèque scipy en utilisant python -m pip install scipy --upgrade. J'étais confronté à la même erreur et cette solution a fonctionné sur mon python 3.5.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X