2010-03-25 12 views
6

¿Podría alguien darme un puntero sobre por qué tengo que agregar mi ruta raíz de proyecto a la ruta python así como a la aplicación misma en mi archivo WSGI?Django sys.path.append para proyecto * y * aplicación necesaria bajo WSGI

La base del proyecto se llama 'djapp', la aplicación se llama 'myapp'.

sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/..') 
sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/../djapp') 

os.environ['DJANGO_SETTINGS_MODULE'] = 'djapp.settings' 

Si Omito la línea con "/../djapp/" el registro dice que mi 'miaplicacion' no se pueden importar, a pesar de que 'djapp.settings' es. (validación de 'djapp' fue importado)

Todo funciona correctamente con el comando ./manage.py. hay un __init__ en la carpeta del proyecto.

Por el amor testeos, veo el mismo problema usando addsitedir:

site.addsitedir('/home/user/web/project/') 
site.addsitedir('/home/user/web/project/djapp') 

Respuesta

4

Desde djapp (la carpeta del proyecto Django) está en una carpeta principal que también pertenece a la implementación Me cambió el nombre de la carpeta djapp simplemente para project. A continuación, este código es siempre correcta:

sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/..') 
sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/../project') 

os.environ['DJANGO_SETTINGS_MODULE'] = 'project.settings' 

El diseño de carpeta completa ser:

host.example.com\ 
    etc\ 
    bin\ 
    project\ 
    logs\ 

y lo que tiene. De esta manera proyecto siempre se puede llamar proyecto :)

Espero que ayude.

GrtzG

3

código de suponer que tienes dentro de su proyecto que está haciendo from myapp import foo.

Dos opciones:

  • cambio que a from djapp.myapp import foo, que no es recomendable, ya que evita la portabilidad;
  • solo agregue djapp en su WSGI, y configure DJANGO_SETTINGS_MODULE en solo 'settings'.
+0

Hola Daniel, gracias por la respuesta. Ya probé la segunda opción, pero luego se queja de importar 'djapp.urls' – GerardJP

Cuestiones relacionadas