2009-12-15 18 views
7

Ho un problema con virtualenv. Lo uso regolarmente, lo uso sulla mia macchina di sviluppo e su diversi server. Ma su quest'ultimo server che ho provato a usare ho avuto un problema.Errore di importazione con virtualenv

Ho creato un virtualenv con l'argomento --no-site-packages, quindi ho installato alcuni moduli python all'interno di virtualenv. Posso confermare che i moduli si trovano all'interno dei pacchetti del sito virtualenvs e tutto sembra andare bene.

Ma quando provo a fare: source virtualenv/bin/activate e quindi importare uno del modulo python import modulename ottengo un errore di importazione che dice che il modulo non esiste. Com'è che questo sta accadendo? Sembra che non si attivi mai anche solo quando dice che lo fa.

Qualcuno ha un indizio su come risolvere questo problema?

risposta

14

C'è un alias bash attivo su questa macchina per "python", per caso? Ciò avrà la priorità sulle modifiche del PATH fatte da attivare, e potrebbe causare l'uso del binario python sbagliato.

Provare a eseguire virtualenv/bin/python direttamente (non è necessario attivare) e vedere se è possibile importare il modulo.

Se questo lo risolve, devi solo eliminare il tuo alias bash Python.

+0

Grazie, che è stato. Non riuscivo a capire quale fosse la ragione. Fai ora come rendere questo un cambiamento permanente in modo che non debba fare ogni volta venv/bin/python? – espenhogbakk

+0

Ho appena incontrato lo stesso problema. Come ti sbarazzi dell'alias di bash? – nutship

+0

Beh, presumibilmente l'alias viene creato con un comando 'alias' da qualche parte nei tuoi file di avvio bash: .bashrc o .bash_profile, o forse se sei su un sistema condiviso c'è qualcosa configurato in un file di sistema come/etc/bash.bashrc? Basta trovare dove viene creato l'alias, rimuovere/commentare quella linea e avviare una nuova shell, e dovrebbe essere sparita. –

0

IIRC, lo script di attivazione mette semplicemente il tuo virtual env prima sul tuo percorso, quindi quando digiti "python" trova prima quello nel tuo ambiente virtuale. Se lo script di attivazione fallisce, puoi sempre modificare manualmente il tuo percorso. Inoltre, vai qui e cerca "activate": http://pylonsbook.com/en/1.1/installing-pylons.html#setting-up-a-virtual-python-environment. Questo ti spiegherà perché il comando di attivazione può fallire.

5

Dopo aver attivato l'env virtuale, provare:

$ python 
>>> import sys 
>>> sys.executable 
... 

... e vedere se si esegue il file eseguibile previsto.

controllare anche:

>>> sys.path 
[...]