with unable modulenotfounderror mod_wsgi how get_wsgi_application from error elastic deploy awsebcli aws app and django apache amazon-ec2 wsgi django-wsgi

unable - ImportError: Ningún módulo llamado django.core.wsgi Apache+VirtualEnv+AWS+WSGI



importerror no module named django core wsgi apache2 (8)

A primera vista, lo siento por mi inglés. También me enfrenté a este problema y lo resolví cambiando el archivo ''wsgi.py'' a:

import os import django from django.core.handlers.wsgi import WSGIHandler os.environ.setdefault("DJANGO_SETTINGS_MODULE", "eisentask.settings.production") django.setup(set_prefix=False) application = WSGIHandler()

Estoy intentando publicar mi sitio en una instancia EC2 de Amazon y sigo recibiendo un error de 500. Realmente no sé por qué.

//Archivos de registro

[Sun Feb 17 23:12:48.066802 2013] mod_wsgi (pid=2102): Target WSGI script ''/srv/www/app/poka/apache/wsgi.py'' cannot be loaded as Python module. [Sun Feb 17 23:12:48.066840 2013] mod_wsgi (pid=2102): Exception occurred processing WSGI script ''/srv/www/app/poka/apache/wsgi.py''. [Sun Feb 17 23:12:48.066864 2013] Traceback (most recent call last): [Sun Feb 17 23:12:48.066889 2013] File "/srv/www/mysite/poka/apache/wsgi.py", line 26, in <module> [Sun Feb 17 23:12:48.066920 2013] from django.core.wsgi import get_wsgi_application [Sun Feb 17 23:12:48.066945 2013] ImportError: No module named django.core.wsgi

// Archivos de configuración de Apache

WSGIScriptAlias / /srv/www/app/mysite/apache/wsgi.py WSGIDaemonProcess mysite python-path=/srv/www/app/mysite:/home/ec2-user/.virtualenvs/mysite-main/lib/python2.7/site-packages WSGIProcessGroup mysite <Directory /srv/www/app/mysite/apache/> <Files wsgi.py> Order deny,allow Allow from all </Files> </Directory> <Directory /srv/www/app/mysite/apache/> Order deny,allow Allow from all </Directory> <Directory /home/ec2-user/app/mysite/static> Order deny,allow Allow from all </Directory> <Directory /home/ec2-user/app/mysite/media> Order deny,allow Allow from all </Directory>

//wsgi.py

import os import sys import site site.addsitedir(''/home/ec2-user/.virtualenvs/mysite-main/lib/python2.7/site-packages'') os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings") from django.core.wsgi import get_wsgi_application application = get_wsgi_application() path = ''/srv/www/app/mysite'' if path not in sys.path: sys.path.append(path)


Agregue esto al archivo de configuración de Apache:

WSGIPythonHome /home/ec2-user/.virtualenvs/mysite-main


Asegúrese de estar utilizando el módulo uwsgi instalado dentro del virtualenv, por ejemplo:

/home/ubuntu/venv/bin/uwsgi --ht :8000 --module mysite.wsgi


Has configurado todo muy bien, amigo, solo tienes que darle permiso al usuario de apache para acceder a los directorios de proyectos y virtualenv.

Ejemplo:

sudo chown -R www-data:www-data /home/ubuntu/projects sudo chown -R www-data:www-data /home/ubuntu/virtualenv

Esto resolvió mi problema con ImportError: No module named django.core.wsgi (carpetas virtualenvs) e ImportError: No module named <project-name>.settings (carpetas de proyectos)


Para mí fue necesario configurar algunas variables (para Windows):

set PYTHONHOME=F:/path/to/python set PYTHONPATH=F:/path/to/python


Para mí, esto indicaba que Django no estaba instalado en el servidor. Solucionado a través de

pip install Django


Sé que este es un hilo viejo, pero acabo de tropezar con el mismo problema y no creo que esto sea causado por un paquete que falta. Como la distribución central de Django ya contiene el controlador wsgi correcto.

El problema aquí es que cuando se ejecuta wsgi.py, faltan los paquetes del sitio-paquetes de su virtualenv. (Si ha activado su virtualenv, y hecho pip install django, entonces todo está bien. Tiene los paquetes django necesarios).

En lo que a mí respecta, he solucionado el problema al modificar sys.path en mi archivo Path / to / Project / Project / wsgi.py.

Debe agregar su directorio de proyecto y sus paquetes de sitio virtualenv a la lista sys.path. Aquí está mi archivo wsgi.py contenido en mi proyecto (Hablando de wsgi.py creado con django-admin.py start-project) ... que tuve que modificar para que funcione con Apache

# ===================== # wsgi.py file begin import os, sys # add the hellodjango project path into the sys.path sys.path.append(''<PATH_TO_MY_DJANGO_PROJECT>/hellodjango'') # add the virtualenv site-packages path to the sys.path sys.path.append(''<PATH_TO_VIRTUALENV>/Lib/site-packages'') # poiting to the project settings os.environ.setdefault("DJANGO_SETTINGS_MODULE", "hellodjango.settings") from django.core.wsgi import get_wsgi_application application = get_wsgi_application() # wsgi.py file end # ===================

Asegurarse:

  1. agregaste mod_wsgi a los módulos de Apache dir mod_wsgi debe compilarse para el SO, Apache y la versión de Python que tienes

  2. agregó el comando load module en su httpd.conf para cargar el módulo mod_wsgi LoadModule wsgi_module modules / mod_wsgi.so

  3. configuró los detalles de Django en su httpd.conf o cualquier conf que incluya en su httpd.conf

Basado en la documentación Cómo usar Django con Apache y mod_wsgi

WSGIScriptAlias / <PATH_TO_PROJECT>/hellodjango/hellodjango/wsgi.py WSGIPythonPath <PATH_TO_PROJECT>:<PATH_TO_VIRTUALENV>/Lib/site-packages <Directory <PATH_TO_PROJECT>/hellodjango/hellodjango> <Files wsgi.py> Order deny,allow Require all granted </Files> </Directory>

Espero que esto ayude. Funcionó para mí


Tuve un error similar en este momento. Resulta que nuestro código Django fue desarrollado en Python 3.5, pero por alguna razón las personas que implementaron nuestra configuración de servidor virtualEnv con python 2.7. Nos redistribuimos con Python 3.5 y todo funcionó para nosotros

Debajo estaba el mensaje de error que recibí:

$ python serviceStartup.py Traceback (most recent call last): File "serviceStartup.py", line 10, in <module> from django.core.wsgi import get_wsgi_application ImportError: No module named django.core.wsgi

Espero que esto ayude a cualquiera que vea un mensaje de error similar.