ImportError: No module named django.de base.wsgi Apache + VirtualEnv + AWS + WSGI
Je suis en train de publier mon site sur une Instance Amazon EC2, et je reçois une erreur 500. Vraiment, je ne sais pas pourquoi.
//Les Fichiers Journaux
[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
//Fichiers De Configuration D'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)
Vous devez vous connecter pour publier un commentaire.
Je sais que c'est un vieux thread mais je viens de tombé sur le même problème et je ne pense pas que cela est causé par un paquet manquant. Comme le Django de base de distribution contient la bonne wsgi gestionnaire déjà.
Le problème ici est que quand wsgi.py est exécuté, il manque les paquets du site-packages de votre virtualenv. (Si vous avez activé votre virtualenv, et fait pip install django alors tout va bien. Vous disposez de tous les django paquets).
Autant que je suis concerné, j'ai résolu le problème en modifiant le sys.chemin dans mon Path/to/Project/Project/wsgi.py fichier.
Vous devrez ajouter à votre projet dir et votre virtualenv site-packages pour le sys.Liste des chemins.
Voici mon wsgi.py fichier contenu dans mon projet (en Parlant de la wsgi.py créé avec django-admin.py start-projet)... que j'ai eu à le modifier afin de le faire fonctionner avec Apache
Assurez-vous que:
vous avez ajouté mod_wsgi pour les modules d'Apache dir
mod_wsgi doit être compilé pour le système d'exploitation, Apache et la version de Python que vous avez
ajouté à la charge du module de commande dans votre httpd.conf pour charger mod_wsgi module
LoadModule wsgi_module modules/mod_wsgi.donc
configuré Django détails dans votre httpd.conf ou tout conf-vous d'inclure dans votre httpd.conf
Basée sur la documentation Comment utiliser Django avec Apache et mod_wsgi
Espère que cette aide. Il a travaillé pour moi.
site-packages
eu un chemin différent (et pas avec un L majuscule dans lib):lib/python3.6/site-packages
. Votre chemin peut être différent, fx. si vous avez une autre version de python, donc je propose de le vérifier cela. Aussi je ne suis pas sûr de ce quePATH_TO_PROJECT/hellodjango
moyens. Est-il censé être le répertoire où settings.py est?L'ajouter au fichier de configuration d'Apache:
Pour moi, c'est l'indication de Django n'était pas installé sur le serveur. Fixe via
J'ai eu une erreur similaire, juste maintenant. Il s'avère que notre Django code a été élaboré sur python 3.5, mais pour certaines raisons, les gens qui ont déployé notre serveur de configuration virtualEnv avec python 2.7. Nous avons redéployé avec python 3.5 et tout a fonctionné pour nous
Ci-dessous a été le message d'erreur que j'ai reçu:
Espérons que cela permettra à quelqu'un de voir un message d'erreur similaire!
Vous avez tout configuré très bien mon ami, juste besoin de donner à l'utilisateur apache autorisation d'accéder à la fois projet et virtualenv dirs.
Exemple:
Cela a résolu mon problème avec
ImportError: No module named django.core.wsgi
(virtualenvs dossiers) etImportError: No module named <project-name>.settings
(projets, dossiers)Au premier coup d'œil, je suis désolé pour mon anglais. J'ai aussi été confronté à ce problème, et je l'ai résolu en changeant 'wsgi.py fichier de:
J'ai eu le même problème. Mon libapache2-mod-wsgi python 2.x et pas de python 3.x
trouvé la solution ici: https://stackoverflow.com/a/28118284/2489042
crédits à @nima
Avertissement de la part de @alxs avant de copier/coller ces commandes:
Si il y a python 2 projets en cours d'exécution sur le serveur que l'utilisation de wsgi et apache, les commandes ci-dessus seront efficacement les arrêter.
Pour moi, c'était quelques variables qui devaient être programmés (pour windows) :
Assurez-vous que vous utilisez le uwsgi module est installé à l'intérieur de la virtualenv, par exemple: