ImportError: Could not import settings (Is it on sys.path? Is there an import error in the settings file?): No module named setting

StackOverflow https://stackoverflow.com//questions/22046395

Question

I'm going through the "example" project into production on a VPS CentOS 6 (with Plesk) with python2.7, mod_wsgi, Django 1.6 I have proven many configurations and I always get error "No module named settings" or "No module named Unipath". Not that I have wrong or I'm missing. Thanks and regards.

My vhost.conf:

Alias /static/ /var/www/vhosts/example.com/httpdocs/
Alias /media/ /var/www/vhosts/example.com/httpdocs/media/

WSGIScriptAlias / /var/www/vhosts/example.com/example.wsgi

<Directory /var/www/vhosts/example.com>
    Order allow,deny
    Allow from all
</Directory>

My example.wsgi:

import os
import sys

path = '/var/www/vhosts/example.com/example'
if path not in sys.path:
   sys.path.append(path)

os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

I put my project via ftp into : /var/www/vhosts/example.com/

example.com/
      example(project)
          settings.py
          urls.py
          ...
      app
          models.py
          forms.py
          views.py
          ...
      templates
      httpdocs
      example.wsgi
      manage.py

Thanks again...

Was it helpful?

Solution

Go read the official Django documentation on how to setup things for mod_wsgi:

You are not setting the Python module search path or DJANGO_SETTINGS_MODULE as described in that document.

OTHER TIPS

Your settings are in example app so it should be:

os.environ['DJANGO_SETTINGS_MODULE'] = 'example.settings'

Use WSGIDaemonProcess & WSGIProcessGroup

You can solve this issue by setting the python-path in apache2 config to point at your django project directory

Alias /static/ /var/www/vhosts/example.com/httpdocs/
Alias /media/ /var/www/vhosts/example.com/httpdocs/media/

WSGIScriptAlias / /var/www/vhosts/example.com/example.wsgi

WSGIDaemonProcess example.com processes=2 threads=15 display-name=%{GROUP} python-path=/var/www/vhosts
WSGIProcessGroup example.com

<Directory /var/www/vhosts/example.com>
    Order allow,deny
    Allow from all
</Directory>
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top