Первый раз при запуске Django / WSGI возникли проблемы - PullRequest
0 голосов
/ 20 июня 2011

У меня установлен Python, я могу запускать сценарии в командной строке. Но я хочу создавать веб-страницы с его помощью и использовать фреймворк Django.

Я прочитал много документации о том, как настроить и запустить django. Большая часть работы была выполнена с помощью apt-get install, которая установила все необходимое, но с конфигурацией vhost, с которой у меня возникли проблемы. В настоящее время я получаю ошибку 500 Server, и в журнале ошибок я вижу ошибку импорта.

Вот полный файл vhost:

    <VirtualHost *:80>
        ServerAdmin richtestani@mac.com
        ServerName friendflix.me
                ServerAlias www.friendflix.me
        DocumentRoot "/srv/www/friendflix.me/public_html/"
        ErrorLog /srv/www/friendflix.me/logs/error.log
            CustomLog /srv/www/friendflix.me/logs/access.log combined

            WSGIScriptAlias / /srv/www/friendflix.me/application/django.wsgi
      <Directory /srv/www/friendflix.me/application>
 Order allow,deny
Allow from all
  </Directory>

    <Location "/application">
SetHandler python-program
  PythonOption django.root /application
  PythonHandler django.core.handlers.modpython
  SetEnv DJANGO_SETTINGS_MODULE settings
PythonPath "['/srv/www/friendflix.me/application', '/srv/www/friendflix.me/publ$
PythonDebug On
</Location>

Alias /static /srv/www/friendflix.me/public_html/static
</VirtualHost>

Хвост ошибки.log

[Sun Jun 19 21:28:07 2011] [error] [client 74.89.144.194]     self.load_middleware() 
[Sun Jun 19 21:28:07 2011] [error] [client 74.89.144.194]   File "/usr/local/lib/python2.6/dist-packages/django/core/handlers/base.py", line 39, in load_middleware
[Sun Jun 19 21:28:07 2011] [error] [client 74.89.144.194]     for middleware_path in settings.MIDDLEWARE_CLASSES:
[Sun Jun 19 21:28:07 2011] [error] [client 74.89.144.194]   File "/usr/local/lib/python2.6/dist-packages/django/utils/functional.py", line 276, in __getattr__
[Sun Jun 19 21:28:07 2011] [error] [client 74.89.144.194]     self._setup()
[Sun Jun 19 21:28:07 2011] [error] [client 74.89.144.194]   File "/usr/local/lib/python2.6/dist-packages/django/conf/__init__.py", line 42, in _setup
[Sun Jun 19 21:28:07 2011] [error] [client 74.89.144.194]     self._wrapped = Settings(settings_module)
[Sun Jun 19 21:28:07 2011] [error] [client 74.89.144.194]   File "/usr/local/lib/python2.6/dist-packages/django/conf/__init__.py", line 89, in __init__
[Sun Jun 19 21:28:07 2011] [error] [client 74.89.144.194]     raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SETTINGS_MODULE, e))
[Sun Jun 19 21:28:07 2011] [error] [client 74.89.144.194] ImportError: Could not import settings 'settings' (Is it on sys.path?): No module named settings

Структура каталогов приложения (или хотя бы)

html root

/srv/www/friendflix.me/public_html

корень приложения

/srv/www/friendflix.me/application

Конфигурация приложения Django / wsgi

/srv/www/friendflix.me/application/django.wsgi

скрипт Django.wsgi

import os
import sys

sys.path.append('/srv/www/friendflix.me/application')

os.environ['PYTHON_EGG_CACHE'] = '/srv/www/friendflix.me/.python-egg'
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

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

Любая помощь в исправлении этого была бы великолепна - спасибо! Рич

1 Ответ

0 голосов
/ 20 июня 2011

Из документации:

Значение DJANGO_SETTINGS_MODULE должно быть в синтаксисе пути Python, например mysite.settings обозначение настроек базовая конфигурация modpython

Так что если имя вашего проекта (сайта) - application:

SetEnv DJANGO_SETTINGS_MODULE application.settings
...