2016-05-17 8 views
81

Sto cercando di eseguire il seguente codice sempliceImportError: non si può importare nome NUMPY_MKL

import scipy 
scipy.test() 

Ma sto ottenendo 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 in Windows 10.

Ho installato scipy ma questo non sembra risolvere il problema

Qualsiasi aiuto è apprezzato.

risposta

216

Se guardate la linea che causa l'errore, si vedrà questo:

from numpy._distributor_init import NUMPY_MKL # requires numpy+mkl 

Questa riga di commento membri la dipendenza come numpy+mkl (numpy con Intel Math Kernel Library). Ciò significa che hai installato numpy entro il pip, ma l'scipy è stato installato dall'archivio precompilato, che si aspetta numpy+mkl.

Questo problema può essere risolto facilmente dall'installazione per numpy+mkl dal file da here.

+5

Questa soluzione ha funzionato per me con Python 2.7.10 su Windows – ScottMcC

+2

@VMAtm Can abbiamo entrambe le installazioni di numpy (da pip) e numpy + mkl (dalle librerie precompilate) nelle stesse virtualenvs? – StrawhatLuffy

+0

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

0

Dal registro è chiaro che manca il pacchetto numpy. Come menzione nel PyPI package:

The SciPy library depends on NumPy, which provides convenient and fast N-dimensional array manipulation.

Quindi, provare a installare numpy pacchetto per python come avete fatto con scipy.

+3

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

+2

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

+0

lavorato. grazie il mio scikit era da http://www.lfd.uci.edu/~gohlke/pythonlibs/ Quindi ho dovuto usare il numpy della stessa distro –

14

Reinstallare numpy-1.11.0_XXX.whl (per il proprio Python) da www.lfd.uci.edu/~gohlke/pythonlibs. Questo file ha lo stesso nome e la stessa versione se confrontato con la variante scaricata da me prima del 29.03.2016, ma la sua dimensione e il suo contenuto sono diversi dalla vecchia variante. Dopo che l'errore di reinstallazione è scomparso.

Seconda opzione - tornare alla SciPy 0.17.0 da 0.17.1

P.S. Io uso la versione Windows a 64 bit di Python 3.5.1, quindi non posso garantire che numpy per Python 2.7 sia già stato corretto.

9

Non sono sicuro se questa sia una buona soluzione ma ha rimosso l'errore. ho commentato la linea:

from numpy._distributor_init import NUMPY_MKL 

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

+3

:) La cosa interessante è che funziona davvero e non esiste una riga di questo tipo nella versione di Linux di scipy. – dmitry

6

Ho avuto lo stesso problema durante l'installazione di gensim su Windows. Gensim dipende da scipy e scipy su numpy. Fare tutti e tre i lavori è un vero dolore. Mi ci è voluto un sacco di tempo per far sì che tutto funzionasse allo stesso tempo.

Soluzione: Se si utilizza Windows, assicurarsi di installare numpy + mkl anziché solo numpy. Se è già stato installato e SciPy NumPy, disinstallare quindi utilizzando "pip SciPy disinstallazione" e "pip NumPy uninstall"

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

Ora scaricare SciPy da http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy (versione appropriata per il pitone e il sistema) e l'installazione utilizzando "PIP installare SciPy-0.19.1-cp34-cp34m-win32.whl"

tuo NumPy e SciPy entrambi dovrebbero lavorare adesso. Questi binari di Christoph Gohlke facilitano l'installazione di pacchetti Python su Windows. Ma assicurati di scaricare tutti i pacchetti dipendenti da lì.

+0

Sono tornato a Python 3.4 dalla versione 3.6 mentre stavo riscontrando problemi nell'installazione di scipy con Python 3.6 – user3046442

0

Recentemente ho ricevuto lo stesso errore quando provavo a caricare scipy in jupyter (python3.x, win10), anche se avevo appena effettuato l'aggiornamento a numpy-1.13.3 + mkl tramite pip. La soluzione era semplicemente aggiornare il pacchetto scipy (dalla v0.19 alla v1.0.0).

+0

Questo in realtà non risponde alla domanda. Se hai una domanda diversa, puoi richiederla facendo clic su [Invia domanda] (https://stackoverflow.com/questions/ask). Puoi anche [aggiungere una taglia] (https://stackoverflow.com/help/privileges/set-bounties) per attirare maggiormente l'attenzione su questa domanda una volta che hai abbastanza [reputazione] (https://stackoverflow.com/help/ che cosa è-la reputazione). - [Dalla recensione] (/ recensione/post di bassa qualità/18193645) – Rabbid76

+0

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

Problemi correlati