Модуль настроек не найден при развертывании django на общем сервере - PullRequest
0 голосов
/ 26 марта 2010

Я пытаюсь развернуть свой проект django на виртуальном хостинге, как описано здесь

У меня есть проект на / home / user / www / testa

Я использую этот скрипт


#!/usr/bin/python
import sys, os

sys.path.append("/home/user/bin/python")

sys.path.append('/home/user/www/testa')


os.chdir("/home/user/www/testa")

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

from django.core.servers.fastcgi import runfastcgi
runfastcgi(method="threaded", daemonize="false")

И вот ошибка, которую я получаю при попытке запустить его из оболочки:


WSGIServer: missing FastCGI param REQUEST_METHOD required by WSGI!
WSGIServer: missing FastCGI param SERVER_NAME required by WSGI!
WSGIServer: missing FastCGI param SERVER_PORT required by WSGI!
WSGIServer: missing FastCGI param SERVER_PROTOCOL required by WSGI!
Traceback (most recent call last):
  File "build/bdist.linux-i686/egg/flup/server/fcgi_base.py", line 558, in run
  File "build/bdist.linux-i686/egg/flup/server/fcgi_base.py", line 1118, in handler
  File "/home/user/lib/python2.4/site-packages/django/core/handlers/wsgi.py", line 230, in __call__
    self.load_middleware()
  File "/home/user/lib/python2.4/site-packages/django/core/handlers/base.py", line 33, in load_middleware
    for middleware_path in settings.MIDDLEWARE_CLASSES:
  File "/home/user/lib/python2.4/site-packages/django/utils/functional.py", line 269, in __getattr__
    self._setup()
  File "/home/usr/lib/python2.4/site-packages/django/conf/__init__.py", line 40, in _setup
    self._wrapped = Settings(settings_module)
  File "/home/user/lib/python2.4/site-packages/django/conf/__init__.py", line 75, in __init__
    raise ImportError, "Could not import settings '%s' (Is it on sys.path? Does it have syntax errors?): %s" % (self.SETTINGS_MODULE, e)
ImportError: Could not import settings 'settings.py' (Is it on sys.path? Does it have syntax errors?): No module named settings.py
Content-Type: text/html



Unhandled Exception

<h1>Unhandled Exception</h1>
<p>An unhandled exception was thrown by the application.</p>


Что я делаю не так?

Запуск сценария из браузера приводит к внутренней ошибке сервера.

1 Ответ

3 голосов
/ 26 марта 2010

Линия

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

должно быть больше похоже на

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

в зависимости от того, как вы настраиваете sys.path. Предполагается, что эта переменная среды содержит путь к модулю , так как он должен быть импортирован Python , а не фактическое имя файла модуля.

По сути, теперь у вас есть способ заставить Джанго делать что-то подобное внутри:

import settings.py

Т.е. он пытается импортировать модуль py из модуля settings.

...