ImportError: Не удалось импортировать настройки (это в sys.path? Есть ли ошибка импорта в файле настроек?): Нет модуля с именем параметра

Я запускаю «пример» проекта в производство на VPS CentOS 6Plesk) с python2.7, mod_wsgi, Django 1.6 Я проверил множество конфигураций, но всегда получаю сообщение об ошибке «Нет модуля с именем settings» или «Нет модуля с именем Unipath». Не то, чтобы я ошибся или я пропал без вести. Спасибо и привет.

Мой 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>

Мой пример.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()

Я помещаю свой проект через ftp в: /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

Спасибо еще раз...


person user3356409    schedule 26.02.2014    source источник


Ответы (3)


Прочтите официальную документацию Django о том, как настроить mod_wsgi:

Вы не устанавливаете путь поиска модуля Python или DJANGO_SETTINGS_MODULE, как описано в этом документе.

person Graham Dumpleton    schedule 26.02.2014

Ваши настройки находятся в примере приложения, поэтому должно быть:

os.environ['DJANGO_SETTINGS_MODULE'] = 'example.settings'
person Łukasz Staniszewski    schedule 26.02.2014
comment
Я пытаюсь с этой и той же ошибкой :( Настройки находятся внутри примера проекта, извините - person user3356409; 26.02.2014

Используйте WSGIDaemonProcess и WSGIProcessGroup

Вы можете решить эту проблему, установив конфигурацию python-path в apache2 так, чтобы она указывала на каталог вашего проекта django.

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>
  • Отредактировано для переключения из встроенного режима в режим демона. Кредит Грэму Дамплтону, который является автором этот пост в блоге, а также прокомментировал его.
person Jossef Harush    schedule 16.08.2015
comment
За исключением того, что вы не должны использовать встроенный режим. Используйте режим демона mod_wsgi, и это опция python-path для WSGIDaemonProcess. Повторяю, вы никогда не должны использовать встроенный режим, если вы не застряли в Windows. - person Graham Dumpleton; 17.08.2015
comment
@GrahamDumpleton, спасибо за комментарий, я также прочитал ваша запись в блоге. Я не знал о режиме демона. Спасибо! отредактировал мой ответ - person Jossef Harush; 17.08.2015