Usually, people have a problem setting up django to serve apache and mod-wsgi. A common symptom is “Import Error” ... for some reason (usually slightly different in each case) settings.py or similar does not import (see “Related” in the right column on this page for numerous examples!).
I read other questions on this topic, and none of them has a solution that works for my situation (one of them was the main incorrect description of the poster identified by the responder - I seem to have no this problem, others apply to using wsgi from other modules, etc.).
When apache / mod-wsgi fails to load, how can it be debugged?
What can you do to give you a better message than “Import Error”?
Obviously, I'm looking for a method that will determine what is wrong in my case. But I really would like to know how to approach debugging this kind of crashes: I seem to be unable to find information that this makes it fail.
In my case, I am trying to do what seems like a direct deployment of django with mod-wsgi - indeed from a book, just like a document, but getting an error:
ImportError: Could not import settings 'cm_central.settings' (Is it on sys.path? Is there an import error in the settings file?): No module named cm_central.settings
I do not understand why he can not find this module.
/home/cmc/src/cm_central/cm_central/settings.py exists, pythonn can be loaded without errors, and actually works OK with ./manage.py runserver .
Is it possible that there is some import error that occurs in the apache context that does not occur when I load it myself? I am wondering because of the words “Is there an import error in the settings file?” ... why is he asking about this? If an import error occurs, how would I debug it?
I have this in / etc / apache 2 / sites-enabled / cm-central:
<VirtualHost *:80> WSGIScriptAlias / /home/cmc/src/cm_central/cm_central/wsgi.py WSGIDaemonProcess cm-central.johalla.de python-path=/home/cmc/src/cm_central:/home/cmc/virtualenvs/cmc/lib/python2.7/site-packages WSGIProcessGroup cm-central.johalla.de <Directory /home/cmc/src/cm_central/cm_central> <Files wsgi.py> Order deny,allow Allow from all </Files> </Directory> </VirtualHost>
And this is in wsgi.py: (I did not change it from what django created)
import os os.environ.setdefault("DJANGO_SETTINGS_MODULE", "cm_central.settings") from django.core.wsgi import get_wsgi_application from dj_static import Cling application = Cling(get_wsgi_application())
Full trace:
[Sun Nov 09 12:00:01 2014] [error] [client 192.168.122.40] mod_wsgi (pid=10273): Target WSGI script '/home/cmc/src/cm_central/cm_central/wsgi.py' cannot be loaded as Python module. [Sun Nov 09 12:00:01 2014] [error] [client 192.168.122.40] mod_wsgi (pid=10273): Exception occurred processing WSGI script '/home/cmc/src/cm_central/cm_central/wsgi.py'. [Sun Nov 09 12:00:01 2014] [error] [client 192.168.122.40] Traceback (most recent call last): [Sun Nov 09 12:00:01 2014] [error] [client 192.168.122.40] File "/home/cmc/src/cm_central/cm_central/wsgi.py", line 16, in <module> [Sun Nov 09 12:00:01 2014] [error] [client 192.168.122.40] application = Cling(get_wsgi_application()) [Sun Nov 09 12:00:01 2014] [error] [client 192.168.122.40] File "/home/cmc/virtualenvs/cmc/lib/python2.7/site-packages/django/core/wsgi.py", line 14, in get_wsgi_application [Sun Nov 09 12:00:01 2014] [error] [client 192.168.122.40] django.setup() [Sun Nov 09 12:00:01 2014] [error] [client 192.168.122.40] File "/home/cmc/virtualenvs/cmc/lib/python2.7/site-packages/django/__init__.py", line 20, in setup [Sun Nov 09 12:00:01 2014] [error] [client 192.168.122.40] configure_logging(settings.LOGGING_CONFIG, settings.LOGGING) [Sun Nov 09 12:00:01 2014] [error] [client 192.168.122.40] File "/home/cmc/virtualenvs/cmc/lib/python2.7/site-packages/django/conf/__init__.py", line 46, in __getattr__ [Sun Nov 09 12:00:01 2014] [error] [client 192.168.122.40] self._setup(name) [Sun Nov 09 12:00:01 2014] [error] [client 192.168.122.40] File "/home/cmc/virtualenvs/cmc/lib/python2.7/site-packages/django/conf/__init__.py", line 42, in _setup [Sun Nov 09 12:00:01 2014] [error] [client 192.168.122.40] self._wrapped = Settings(settings_module) [Sun Nov 09 12:00:01 2014] [error] [client 192.168.122.40] File "/home/cmc/virtualenvs/cmc/lib/python2.7/site-packages/django/conf/__init__.py", line 98, in __init__ [Sun Nov 09 12:00:01 2014] [error] [client 192.168.122.40] % (self.SETTINGS_MODULE, e) [Sun Nov 09 12:00:01 2014] [error] [client 192.168.122.40] ImportError: Could not import settings 'cm_central.settings' (Is it on sys.path? Is there an import error in the settings file?): No module named cm_central.settings [Sun Nov 09 12:04:06 2014] [notice] Graceful restart requested, doing restart [Sun Nov 09 12:04:06 2014] [notice] Apache/2.2.22 (Debian) PHP/5.4.4-14+deb7u14 mod_wsgi/3.3 Python/2.7.3 configured
If the answer can help me determine what is wrong, that would be great, but it's even better to answer the question "how to debug this." How to find out why settings.py is not loading?