ImportError: impossibile importare il nome NUMPY_MKL


92

Sto cercando di eseguire il seguente semplice codice

import scipy
scipy.test()

Ma ricevo il seguente errore

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

Sto usando Python 2.7 sotto Windows 10.

Ho installato scipyma non sembra risolvere il problema

Qualsiasi aiuto è apprezzato.

Risposte:


223

Se guardi la riga che causa l'errore, vedrai questo:

from numpy._distributor_init import NUMPY_MKL  # requires numpy+mkl

Questa riga di commento indica la dipendenza come numpy+mkl( numpycon Intel Math Kernel Library ). Ciò significa che hai installato numpyda pip, ma è scipystato installato da un archivio precompilato, che prevede numpy+mkl.

Questo problema può essere facilmente risolto installando il numpy+mklfile da whl da qui .


5
Questa soluzione ha funzionato per me eseguendo Python 2.7.10 su Windows
ScottMcC

2
@VMAtm Possiamo avere entrambe le installazioni di numpy (da pip) e numpy + mkl (da librerie precompilate) nella stessa virtualenvs?
StrawhatLuffy

Per quanto ne so, la risposta è no. Si stanno disinstallando a vicenda, dato che è un torpore alla fine, solo con alcune istruzioni del processore (se ho capito bene)
VMAtm

2
La soluzione ha funzionato perfettamente su Python 2.7 Windows 7. Mi ha fatto risparmiare un sacco di tempo grazie a dozzine!
sel

pip install <numpy wheel path> --user ha funzionato per me mentre stavo ottenendo un problema di autorizzazione.
Amit Kumar

14

Reinstalla numpy-1.11.0_XXX.whl (per il tuo Python) da www.lfd.uci.edu/~gohlke/pythonlibs . Questo file ha lo stesso nome e versione se confrontato con la variante scaricata da me prima del 29.03.2016, ma le sue dimensioni e il contenuto differiscono dalla vecchia variante. Dopo la reinstallazione l'errore è scomparso.

Seconda opzione: torna a Scipy 0.17.0 da 0.17.1

PS Uso la versione Windows a 64 bit di Python 3.5.1, quindi non posso garantire che numpy per Python 2.7 sia già corretto.


11

Non sono sicuro che questa sia una buona soluzione, ma ha rimosso l'errore. Ho commentato la riga:

from numpy._distributor_init import NUMPY_MKL 

e ha funzionato. Non sono sicuro se questo causerà l'interruzione di altre funzionalità


3
:) La cosa interessante è che funziona davvero e non esiste una riga del genere nella versione per Linux di scipy.
dzmitry

7

Ho avuto lo stesso problema durante l'installazione di gensim su Windows. Gensim dipende da scipy e scipy da numpy. Far funzionare tutti e tre è un vero dolore. Mi ci è voluto molto tempo per far funzionare tutto allo stesso tempo.

Soluzione: se stai usando Windows assicurati di installare numpy + mkl invece di numpy. Se hai già installato scipy e numpy, disinstalla quindi usando "pip uninstall scipy" e "pip uninstall numpy"

Quindi scarica numpy-1.13.1 + mkl-cp34-cp34m-win32.whl da http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy e installa utilizzando pip install numpy-1.13.1 + mkl- cp34-cp34m-win32.wh Nota: in cp34-cp34m 34 ​​rappresenta la versione di python che stai utilizzando, quindi scarica la versione pertinente.

Ora scarica scipy da http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy (versione appropriata per il tuo sistema e python) e installa utilizzando "pip install scipy ‑ 0.19.1 ‑ cp34 ‑ cp34m ‑ win32. whl "

Il tuo numpy e Scipy dovrebbero funzionare entrambi ora. Questi binari di Christoph Gohlke rendono molto facile installare i pacchetti Python su Windows. Ma assicurati di scaricare tutti i pacchetti dipendenti da lì.


Sono tornato a python 3.4 da 3.6 perché avevo problemi con l'installazione di scipy con python 3.6
user3046442

3

Non ho abbastanza reputazione per commentare ma voglio aggiungere che il numero cp del file .whl sta per la tua versione python.

cp35 -> Python 3.5.x

cp36 -> Python 3.6.x

cp37 -> Python 3.7.x

Penso che sia abbastanza ovvio, ma comunque ho perso quasi un'ora a causa di questo e forse anche altre persone lottano con quello.

Quindi per me ha funzionato la versione cp36 che ho scaricato qui: https://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy dato che sto usando Python 3.6.8.

Quindi ho disinstallato numpy:

pip uninstall numpy 

Quindi ho installato numpy + mkl:

pip install <destination of your .whl file>

2

Il motivo dell'errore è che hai aggiornato la tua libreria numpy di cui ci sono alcune funzionalità di scipy che sono richieste dalla versione corrente per l'esecuzione, che potrebbero non essere trovate in scipy. Aggiorna la tua libreria scipy usando python -m pip install scipy --upgrade. Stavo affrontando lo stesso errore e questa soluzione ha funzionato sul mio Python 3.5.


0

Dal tuo registro è chiaro che numpymanca il pacchetto. Come menzionato nel pacchetto PyPI :

La libreria SciPy dipende da NumPy, che fornisce una manipolazione di array N-dimensionale comoda e veloce.

Quindi, prova a installare il numpypacchetto per python come hai fatto con scipy.


3
Ho anche installato quello. Per qualche motivo ho dovuto chiudere Spyder ed eseguirlo di nuovo e questo ha risolto il problema. Grazie comunque.
Steve

2
Questo errore si verifica anche se numpy è presente, se numpy non è stato compilato con il supporto MKL.
KDN

Lavorato. grazie il mio scikit proveniva da lfd.uci.edu/~gohlke/pythonlibs Quindi ho dovuto usare numpy dalla stessa distribuzione
Anuvrat Tiku

0

Recentemente ho ricevuto lo stesso errore durante il tentativo di caricare scipy in jupyter (python3.x, win10), sebbene sia stato appena aggiornato a numpy-1.13.3 + mkl tramite pip. La soluzione era semplicemente aggiornare il pacchetto scipy (dalla v0.19 alla v1.0.0).


Volevo solo fornire una correzione che ho usato quando ho riscontrato un problema molto simile.
EV

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.