2015-03-19 23 views
15

Sto lavorando per impostare un progetto Django su Amazon EC2 con un'istanza LTS di Ubuntu 14.04. Voglio scrivere il mio codice usando Python 3. Sono stato avvisato che il modo migliore per farlo è usare virtualenvwrapper. Ho installato virtualenvwrapper con successo e messoNessun modulo chiamato 'virtualenvwrapper'

export WORKON_HOME=$HOME/.virtualenvs 
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3.4 
export PROJECT_HOME=$HOME/Devel 
source /usr/local/bin/virtualenvwrapper.sh 

nel mio file .bashrc. Ora vedo:

/usr/bin/python3.4: Error while finding spec for 'virtualenvwrapper.hook_loader' (<class 'ImportErro 
r'>: No module named 'virtualenvwrapper') 
virtualenvwrapper.sh: There was a problem running the initialization hooks.  

If Python could not import the module virtualenvwrapper.hook_loader, 
check that virtualenvwrapper has been installed for 
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3.4 and that PATH is 
set properly. 

Come posso risolvere questo?

+5

Avete installato 'virtualenvwrapper' con successo ** per quella versione di Python **? Se esegui '/ usr/bin/python3.4' nel terminale e poi prova a 'import virtualenvwrapper', cosa succede? – jonrsharpe

+0

ImportError: nessun modulo chiamato 'virtualenvwrapper' - Suppongo di no. L'ho installato per l'interprete di base con python 2.7 qui – user61629

+2

Probabilmente hai bisogno di 'pip3 install virtualenvwrapper' per installarlo per l'interprete 3.x. In alternativa, si noti che 'virtualenvwrapper' installato sotto 2.x * can * continua a creare 3.x' virtualenv's, usando il parametro '-p' (si veda ad esempio http://stackoverflow.com/q/1534210/3001761). – jonrsharpe

risposta

2

Seguendo il consiglio di Jon mi sono imbattuto:

[email protected]:~$ mkvirtualenv -p /usr/bin/python3.4 env1 
Running virtualenv with interpreter /usr/bin/python3.4 
Using base prefix '/usr' 
New python executable in env1/bin/python3.4 
Also creating executable in env1/bin/python 
Installing setuptools, pip...done. 
(env1)[email protected]:~$ deactivate 
[email protected]:~$ ls 
[email protected]:~$ ls -a 
. .. .bash_history .bash_logout .bashrc .cache .pip .profile .ssh .virtualenvs 
[email protected]:~$ workon 
env1 
[email protected]:~$ workon env1 
(env1)[email protected]:~$ which python 
/home/ubuntu/.virtualenvs/env1/bin/python 
(env1)[email protected]:~$ python -V 
Python 3.4.0 

ho lasciato il .bashrc come elencato sopra. Come Jon ha dichiarato sopra l'installazione di virtualenvwrapper installa sul python predefinito, e usa il python predefinito in qualsiasi virtualenv che si crea a meno che non venga usato il flag -p per specificare un diverso interprete python.

Grazie Jon!

+1

Assicurati che questa sia una risposta utile e indipendente - cioè spiegando * perché * questo funziona (e includendo, presumibilmente, le modifiche che hai fatto a '.bashrc'). – jonrsharpe

14

Invece di specificare un diverso interprete python con il flag -p, è possibile anche configurare l'interprete desiderato come predefinito.

Secondo documentationvirtualenvwrapper s', virtualenvwrapper.sh trova il primo python e virtualenv programmi sul $PATH e li ricorda da utilizzare in seguito.

Se il virtualenvwrapper non è installato sul interprete predefinito python del vostro sistema operativo (/usr/bin/python), assicurarsi di ignorare le variabili di ambiente, come di seguito:

  • VIRTUALENVWRAPPER_PYTHON per il percorso completo del vostro interprete Python
  • VIRTUALENVWRAPPER_VIRTUALENV a il percorso completo del virtualenv

Per esempio, sul mio .bash_profile (Mac):

#virtualenvwrapper 
export WORKON_HOME=$HOME/.virtualenvs 
export VIRTUALENVWRAPPER_PYTHON=/Library/Frameworks/Python.framework/Versions/3.5/bin/python3 
export VIRTUALENVWRAPPER_VIRTUALENV=/Library/Frameworks/Python.framework/Versions/3.5/bin/virtualenv 
source /Library/Frameworks/Python.framework/Versions/3.5/bin/virtualenvwrapper.sh 

ricaricare le nuove variabili eseguendo source ~/.bash_profile

+3

Questo problema sembra prevalente sui Mac, ma se sei su Ubuntu, ti consigliamo di usare '/ usr/bin/python3', 'usr/local/bin/virtualenv', e '/ usr/local/bin/virtualenvwrapper.sh ', assumendo che tu abbia installato i percorsi predefiniti. – codepringle

+0

Grazie! Posso aggiustarlo! – BurtK

2

Se si utilizza birra installare python, si vuole garantire che si imposta questa variabile d'ambiente:

export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python 

nel vostro bash_profile (o qualsiasi altra cosa shell che stai utilizzando).

Problemi correlati