ImportError: No module named django.core.wsgi Apache + VirtualEnv + AWS + WSGI ImportError: No module named django.core.wsgi Apache + VirtualEnv + AWS + WSGI django django

ImportError: No module named django.core.wsgi Apache + VirtualEnv + AWS + WSGI


I know that this is an old thread but I've just bumped into the same issue and I don't think that this is caused by a missing package. As the Django core distribution contains the correct wsgi handler already.

The problem here is that when wsgi.py is executed it's missing the packages of the site-packages from your virtualenv. (If you have activated your virtualenv, and done pip install django then everything is fine. You have the necessary django packages).

As far as I'm concerned, I fixed the issue modifying the sys.path in my Path/to/Project/Project/wsgi.py file.

You have to append your project dir and your virtualenv site-packages to the sys.path List.Here is my wsgi.py file contained in my project (Talking about the wsgi.py created with django-admin.py start-project)... that I had to modify in order to make it work with Apache

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

Make sure:

  1. you added mod_wsgi to the Apache modules dirmod_wsgi must be compiled for the OS, Apache and Python version you have

  2. added the load module command into your httpd.conf to load mod_wsgi moduleLoadModule wsgi_module modules/mod_wsgi.so

  3. configured Django specifics in your httpd.conf or any conf you include in your httpd.conf

Based on the documentation How to use Django with Apache and mod_wsgi

WSGIScriptAlias / <PATH_TO_PROJECT>/hellodjango/hellodjango/wsgi.pyWSGIPythonPath <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>

Hope this helps. It worked for me.


I had the same issue. My libapache2-mod-wsgi was python 2.x and not python 3.x

found the solution here: https://stackoverflow.com/a/28118284/2489042

credits to @nima

$ sudo apt-get remove libapache2-mod-python libapache2-mod-wsgi$ sudo apt-get install libapache2-mod-wsgi-py3

Warning from @alxs before you copy/paste these commands:If there are python 2 projects running on the server that use wsgi and apache, the above commands will effectively shut them down.


Add this to the Apache configuration file:

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