Apache загружает файл x.wsgi из проекта django, без атрибута __file__ - PullRequest
2 голосов
/ 16 февраля 2012

Я пытаюсь загрузить файл Python wsgi, вызываемый из Apache, с помощью mod_wsgi. Мой файл wsgi пытается сбросить sys.path с помощью:

import os, sys

root = os.path.join(os.path.dirname(__file__), '..')
sys.path.insert(0, root)

Апач жалуется: [Wed Feb 15 19:12:26 2012] [error] [client 127.0.0.1]

ImportError: Could not import settings 'mysite.settings'

(Is it on sys.path?): No module named mysite.settings`

когда я делаю:

>>> dir('mysite.wsgi')

Становится очевидным, что файл wsgi не обладает атрибутом __file__, поэтому мой sys.path не обновляется с необходимым каталогом.

Почему этот mysite.wsgi файл не имеет атрибута __file__?

Ответы [ 2 ]

1 голос
/ 16 февраля 2012

Результирующий путь, установленный на «root», должен быть родительским каталогом каталога, в котором находится Django settings.py, а «mysite» должен быть именем этого каталога.Вы ничего не говорите о названии вашего каталога проекта или о том, где находится файл WSGI относительно него, поэтому невозможно сказать вам, как ваш код неправильный.

Код в Apache также будет запускаться как специальный пользователь,так что каталог проекта должен быть доступен / доступен для чтения этому пользователю.

Возможно, посмотрите:

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

, чтобы лучше понять, как все это настроить.

1 голос
/ 16 февраля 2012

должно работать,
но вы также можете попробовать проверить, помогает ли следующий блок кода.

DIRNAME = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(DIRNAME)
...