Я развернул Django в Apache через mod_wsgi
. Django отлично работает при размещении в Apache. Тем не менее, я пытаюсь выполнить некоторое обслуживание с помощью manage.py
, но когда я пытаюсь запустить его, я получаю сообщение об ошибке:
Ошибка: не удалось импортировать настройки "myproject.settings" (есть ли это на sys.path?): ни один модуль с настройками
[email protected]:~$ cd /usr/local/myproject
[email protected]:/usr/local/myproject$ ls
drwxr-xr-x 2 apache apache 4096 2011-09-07 19:38 apache
-rw-r--r-- 1 apache apache 0 2011-05-25 14:52 __init__.py
-rw-r--r-- 1 apache apache 813 2011-09-09 16:56 manage.py
drwxr-xr-x 6 apache apache 4096 2011-09-09 16:43 myapp
-rw-r--r-- 1 apache apache 4992 2011-09-07 19:31 settings.py
drwxr-xr-x 4 apache apache 4096 2011-09-08 20:32 templates
-rw-r--r-- 1 apache apache 1210 2011-09-08 14:49 urls.py
Django, похоже, игнорирует переменную среды DJANGO_SETTINGS_MODULE.
[email protected]:~$ cd /usr/local/myproject
[email protected]:/usr/local/myproject$ export DJANGO_SETTINGS_MODULE=settings
[email protected]:/usr/local/myproject$ python manage.py shell
Error: Could not import settings 'myproject.settings' (Is it on sys.path?): No module named settings
[email protected]:/usr/local/myproject$ python
Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41)
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import settings
>>>
Просто, чтобы подтвердить, что я не сходил с ума, я прокомментировал все внутри manage.py, кроме строки import settings
, и он работал правильно.
Я также попытался установить os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
и sys.path.append('/usr/local/myproject')
непосредственно в начало manage.py, безрезультатно.
Что здесь происходит? Почему Django использует неправильное имя модуля настроек? Это сводит меня с ума.