Проблема развертывания Django в Apache / mod_wsgi.ImportError: Не удалось импортировать настройки 'site.settings' - PullRequest
7 голосов
/ 16 декабря 2010

Когда я выполняю

django-admin.py startproject site

это работает.
Но если я копирую только папку сайта, она не работает.
Почему?

<VirtualHost *:80>
ServerName django.stanislavfeldman.com

# Django settings
WSGIScriptAlias / /var/www/django/wsgi_handler.py
WSGIDaemonProcess django.stanislavfeldman.com maximum-requests=200 stack-size=524288

ErrorLog /var/www/django/error.log
LogLevel warn
</VirtualHost>

wsgi_handler.py:

import os, sys

sys.path.append('/var/www/django')

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

import django.core.handlers.wsgi

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

Ответы [ 5 ]

6 голосов
/ 16 декабря 2010

Если у вас что-то подобное в конфигах apache:

WSGIScriptAlias /path /base/path/devel/your_project.wsgi

И это внутри your_project.wsgi:

sys.path.append('/base/path')
os.environ['DJANGO_SETTINGS_MODULE'] = 'devel.settings'

Тогда apache рассмотрит /base/path/devel/settings.py. Если вы перемещаете или копируете / base / path / devel в / base / path / production, вы должны отредактировать DJANGO_SETTINGS_MODULE в your_project.wsgi, указывая на «production.settings».

5 голосов
/ 16 декабря 2010

Убедитесь, что вы прочитали:

http://code.google.com/p/modwsgi/wiki/IntegrationWithDjango

, а также смотрите эту презентацию:

http://code.google.com/p/modwsgi/wiki/WhereToGetHelp?tm=6#Conference_Presentations

Ваша проблема будет связана с sys.path или правами доступа, которые рассматриваются выше.

То, что вы используете опции 'Maximum -quesses = 200 stack-size = 524288' ​​для директивы WSGIDaemonProcess, заставляет меня задаться вопросом, ссылались ли вы на основную документацию, поскольку базовые инструкции не советуют вам их использовать. Вместо этого похоже, что вы использовали какую-то произвольную публикацию в блоге, чтобы узнать, как ее настроить, или полагаетесь на какой-то фольклор, данный вам на канале IRC. : -)

1 голос
/ 20 января 2011

У меня возникла проблема с символьной ссылкой, которой не следуют из директории site-packages. Дважды проверьте настройки Apache и символические ссылки.

1 голос
/ 16 декабря 2010

Проверьте ваш путь к питону , чтобы убедиться, что WSGI может ссылаться на него.

0 голосов
/ 04 января 2012

Это не проблема в вашем случае, но я запустил smack в тот же ImportError, когда я использовал директиву WSGIPythonPath (вместо файла .wsgi) для установки sys.path. Это работало нормально, пока я не переключился на запуск WSGI в режиме демона. Как только вы это сделаете, вместо этого вы должны будете использовать аргумент python-path для директивы WSGIDaemonProcess.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...