2010-08-11 11 views
5

Recentemente ho iniziare ad utilizzare virtualenvwrapper e ha creatoDjango virtualenv configurazione della distribuzione

mkdir ~/.virtualenvs 
mkvirtualenv example.com 

Virtualenvwarpper automatico creare una virtualenv nome example.com in ~/.virtualenv quindi questo è il contenitore centrale per tutti i virtualenvs. Dopo che ho installato Django e alcuni altri pacchetti tramite pip e il mio sito è a

/srv/www/example.com/public_html/ 

Devo mettere il mio sito per ~/.virtualenv/example.com se non come avrei potuto usare il mio example.com virtualenv con il mio sito sotto /srv/www/example.com/public_html. Potresti mostrarmi una configurazione mod_wsgi di apache per questa distribuzione? Grazie

risposta

4

Leggi:

http://code.google.com/p/modwsgi/wiki/VirtualEnvironments

Esso non può essere sufficiente utilizzare solo site.addsitedir() in quanto non si occupa di determinati problemi di ordinamento. È meglio usare la direttiva di configurazione/opzione fornita da mod_wsgi per aggiungerli. Altrimenti, se l'ordine diventa un problema, è necessario aggiungere del codice nello script WSGI che riordina sys.path come necessario.

+0

Questo ha funzionato bene per me, ma non fino a quando non ho capito che ho bisogno di entrambe le parti, anche se voglio usare il mio virtualenv di base per la mia applicazione. Quindi devi impostare "WSGIPythonHome/usr/local/pythonenv/BASELINE" nella configurazione globale di apache, e quindi devi ANCHE aggiungere il comando site.addsitedir all'inizio del tuo script .wsgi, anche se hai intenzione di usare il tuo basale. I documenti fanno riferimento alle lib di python con 2.5 ma probabilmente sono ora 2.6 per te: site.addsitedir ('/ usr/local/pythonenv/BASELINE/lib/python2.6/site-packages') –

+0

Non dovresti aver bisogno di farlo in entrambi i posti. Qualcos'altro è sbagliato se tu dovessi farlo. –

2

Nello script WSGI:

import site 
site.addsitedir('/home/username/.virtualenvs/example.com/lib/python2.5/site-packages') 

(Regola come appropriato per la versione di Python, ecc)

+0

Questo non è abbastanza. Vedi la risposta di Graham. –

Problemi correlati