Cómo resolver»sin python aplicación de verificación de inicio de los registros de» error de Django + uWSGI + nginx pila

Que el usuario Django 1.10 con uWSGI y nginx en ubuntu 16.04 y desplegar mis app con ansible. Mi proyecto no tienen estructura predeterminada, pero bastante común ( gracias a Dos scoopce para esto :).
Yo uso split dev y la producción de los ajustes y la configuración de la carpeta de lugar » nombre de la carpeta del proyecto. Se parece a esto:

|-- config
|   |-- __init__.py
|   |-- settings
|   |   |-- __init__.py
|   |   |-- base.py
|   |   `-- dev.py
|   |-- urls.py
|   |-- wsgi_dev.py
|   `-- wsgi_production.py
|-- manage.py
`-- requirements.txt

Mi production.py genarate de ansible con seguridad cifrar y localizar en el archivo config/settings.

Con esta configuración me sale «no hay python aplicación de verificación de inicio de los registros». Uwsgi no ver a mi solicitud.

( {{ }} es jinja2 sintaxis para ansible )

/etc/uwsgi/sites/{{ project_name }}

[uwsgi]
chdir = {{ django_root }}
home = /home/{{ project_user }}/venvs/{{ project_name }}
module = config.wsgi_production:application

master = true
processes = 5

socket = /run/uwsgi/{{ project_name }}.sock
chown-socket = {{ project_user }}:www-data
chmod-socket = 660
vacuum = true

1 Kommentar

  1. 6

    Después de varias semanas puedo encontrar un problema en mi wsgi.py. Es común que la solución de uso os.environ['ENV'] para DJANGO_SETTINGS_MODULE, pero con deffrent usuarios y permisos de su doesnt trabajo.

    Si usted utiliza en su wsgi.py archivo algo como esto:

    os.environ["DJANGO_SETTINGS_MODULE"] = "config.settings." + os.environ["ENV"]

    Y tiene un problema con no python application found a dividir su wsgi archivo. Puedo captar que os.environ["ENV"] devolver una cadena vacía. Puedo añadir que para mi de todos los usuarios, el uso de la fuente y etc. Pero uwsgi en emperior modo no lo veo.
    Debe utilizarse wsgi_dev.py y wsgi_production.py donde se puede escribir somethink como este os.environ["DJANGO_SETTINGS_MODULE"] = "config.settings.production". No es tan elegante, pero a resolver estos problemas de la multa.

    Para el uso de la división de wsgi usted puede escribir algo como esto en wsgi.py

    import os
    
    from django.core.wsgi import get_wsgi_application
    
    if os.environ.get('DEV') is True:
       os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings.dev")
    else:
       os.environ.setdefault("DJANGO_SETTINGS_MODULE", 
       "config.settings.production")
    
    application = get_wsgi_application()
    • Hola, ¿cómo dividir wsgi archivos?
    • Yo actualización de respuesta para usted.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea