2010-08-11 18 views
5

Hace poco comienzan a utilizar virtualenvwrapper y crearonconfiguración de implementación de Django virtualenv

mkdir ~/.virtualenvs 
mkvirtualenv example.com 

Virtualenvwarpper automático de crear un virtualenv llamado example.com en ~/.virtualenv por lo que este es el contenedor central para todos los virtualenvs. Después de que he instalado Django y algunos otros paquetes a través de la pipa y mi sitio está en

/srv/www/example.com/public_html/ 

¿Tengo que poner mi sitio para ~/.virtualenv/example.com si no ¿cómo podría usar mi example.com virtualenv con mi sitio en /srv/www/example.com/public_html. ¿Podría mostrarme una configuración apache mod_wsgi para esta implementación? Gracias

Respuesta

4

Leer:

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

Puede que no sea suficiente para usar solo site.addsitedir() ya que no se ocupa de ciertos problemas de ordenamiento. Es mejor utilizar la directiva/opción de configuración provista por mod_wsgi para agregarlas. De lo contrario, si el pedido se convierte en un problema, deberá agregar código en el script WSGI que reordena sys.path según sea necesario.

+0

Esto funcionó bien para mí, pero no hasta que me di cuenta de que necesitaba ambas partes, aunque quiero utilizar mi línea base virtualenv para mi aplicación. Por lo tanto, debe establecer "WSGIPythonHome/usr/local/pythonenv/BASELINE" en la configuración global de apache, y luego también debe agregar el comando site.addsitedir a la parte superior de su script .wsgi, incluso si planea usar su base. Los documentos hacen referencia a las libs de Python con 2.5 pero probablemente sean 2.6 para ti: site.addsitedir ('/ usr/local/pythonenv/BASELINE/lib/python2.6/site-packages') –

+0

No deberías necesitar hacerlo en ambos lugares. Algo más está mal si tuvieras que hacer eso. –

2

En su script WSGI:

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

(ajuste según sea apropiado para su versión de Python, etc.)

+0

Eso no es suficiente. Ver la respuesta de Graham. –

Cuestiones relacionadas