2014-11-14 21 views
14

Ho un notebook ipython che inizia connon trovato sul taccuino ipython

import sklearn 

quando l'eseguo, ottengo:

ImportError: No module named sklearn 

infatti se corro il seguente frammento sul notebook, non è mostrando scikit_learn:

import pip 
installed_packages = pip.get_installed_distributions() 
installed_packages_list = sorted(["%s==%s" % (i.key, i.version) 
    for i in installed_packages]) 
print installed_packages_list 

Tuttavia quando ho eseguito il frammento da linea di comando, scikit_learn è nella lista.

ho pensato a un problema di versione (modulo installato per una versione e non l'altro), fresa sia su notebook e linea di comando, sys.version dare 2.7.5

alcuna idea circa il problema qui?

seguito i commenti di cel:

ipython -c "import sys; print(sys.executable)" 

uscite/usr/bin/python (e così fa in esecuzione import sys; print(sys.executable) direttamente nel notebook)

Poi, /usr/bin/python -m pip install scikit-learn uscite: Requisito già soddisfatti (uso - aggiornamento per l'aggiornamento): scikit-learn in/Users/MyUserName

+1

Per rendere 'scikit-learn' disponibile in' ipython' è necessario installare 'scikit-learn' usando il giusto eseguibile' pip'. Vorrei provare quanto segue: 'ipython -c" import sys; print (sys.executable) "'. Questo dovrebbe stampare un percorso per un interprete python. Dovresti quindi usare questo interprete e chiamare ' -m pip install scikit-learn' per risolvere il tuo problema. – cel

+0

ma 'ipython -c" importa sklearn "' ti dà un errore? – cel

+0

No, sembra non funzionare. Ma l'avvio di un nuovo notebook e l'esecuzione di "import sklearn" al suo interno causano un ImportError. –

risposta

0

E 'possibile che/usr/bin/python sia in realtà un collegamento simbolico?

La soluzione migliore è che si dovrebbe eseguire il proprio notebook ipython da un virtualenv che contiene tutti i moduli necessari.

4

sono stato in grado di correggere questo errore su Ubuntu con l'aggiunta di una cella per la parte superiore del notebook aggiungendo la directory del modulo al percorso:

import sys 
sys.path.append('/usr/lib/python2.7/dist-packages') 

Il percorso da aggiungere possono essere trovati durante l'esecuzione pip install <something>, (come numpy) e ti dice dove ogni pacchetto è installato o esiste già.

Problemi correlati