2011-01-14 29 views
12

Ho già installato python2.6 e django1.2.3 sul mio sistema (Ubuntu 10.x).
Questa è la configurazione che utilizzo per la maggior parte dei miei progetti. Ma per alcuni progetti ho bisogno di ambienti sandboxed, diverse versioni di django, alcuni moduli python aggiuntivi e talvolta anche diverse versioni di python.Flusso di lavoro con virtualenv e pip

Quindi, sto cercando di utilizzare pip e virtualenv ora, ma non riesco a cambiare la versione di python e django. Dovrò rimuovere la configurazione di default e spostare tutti i progetti esistenti in 1 virtualenv. Posso evitare questo? Anche se lo faccio, come posso specificare una versione diversa di python?

Se devo rimuovere le vecchie impostazioni. Come lo faccio? Attualmente ho la maggior parte delle cose installate in /usr/local/lib/python2.6/dist-packages/ ma non sono sicuro se c'è qualcosa installato anche altrove.

Se ho una configurazione completamente vuota con solo Ubuntu, qual è il flusso di lavoro ideale? È questo?

Install python 
$ sudo apt-get install python-setuptools 
$ sudo apt-get install python-virtualenv 
$ sudo easy_install pip 
$ sudo pip install virtualenvwrapper 
+1

virtualenv ti salverà la vita - buona chiamata. – JohnO

risposta

9

si vuole fare:

virtualenv --python=/path/to/python/version --no-site-packages ENV_NAME 

Ad esempio:

virtualenv --python=/usr/bin/python2.6 --no-site-packages my_project_env 

Se si segue questo per i vostri progetti si dovrebbe essere in grado di avere una configurazione separata per ciascuno di essi.

1

È possibile utilizzare virtualenv --no-site-packages ENVNAME e questo assicurerà che il Django predefinito nel sistema Python non sarà incluso nel nuovo ambiente.

Per diverse versioni di Python, è possibile follow these instructions from a superuser.com post.

5

Ho installato ogni versione di Python di cui ho bisogno (che è 2.4, 2.5, 2.6, 2.7, 3.1 e anche 3.2) dalla sorgente. Questa è sempre la cosa migliore da fare, quindi non rovinare il sistema Python.

Li ho installati in/opt. In questo modo (è necessario un po 'di pacchetti di Ubuntu anche prima):

./configure --prefix /opt/pythonxx 
make -j2; make install # j2 is a nice trick there for dualcores not everyone knows. 

Poi per ogni versione installare le cose che ho bisogno. Comincio con l'installazione Distribuire:

wget http://nightly.ziade.org/distribute_setup.py 
/opt/pythonxx/bin/python distribute_setup.py 

(Tranne che per Python 3, che ha bisogno di distribute_setup3.py) allora posso installare pip

/opt/pythonxx/bin/easy_install pip 

E virtualenv:

/opt/pythonxx/bin/pip install virtualenv 

(Virtualenv3 o virtualenv5 per Python 3)

E questo è tutto! Se voglio fare un virtualenv usando Python 2.4, lo faccio:

/opt/python24/bin/virtualenv foobar 

E Python 2.7:

/opt/python27/bin/virtualenv foobar 

esecuzione pitone è solo

/opt/python24/bin/python 

ecc ho mai installare nulla nelle Pythons di cui sopra, tranne questi moduli, e PIL (PIL perché è un dolore, ma ora c'è il cuscino , quindi non devi farlo neanche). Io uso zc.buildout e virtualenv per mantenere puliti i pitoni.

+0

Ho fatto una domanda per creare un elenco di tutti i pacchetti necessari, perché passo sempre mezz'ora su quello ogni volta che installo una nuova Ubuntu. :) http://askubuntu.com/questions/21547/what-are-the-packages-libraries-i-should-install-before-compiling-python-from-sou –

Problemi correlati