Как изменить pythonpath для WSGI-приложения в alwaysdata.net

Я создал небольшое веб-приложение Python с помощью Flask, и я хотел разместить его в файле alwaysdata.net. Я уже установил mod_wsgi в свой поддомен, но когда я пытаюсь импортировать основной модуль своего приложения, он терпит неудачу, потому что его невозможно найти. Все файлы находятся в папке /www.

Должен ли я размещать файлы в другом месте? Я попытался включить текущий рабочий каталог в мой .wsgi файл, но он все еще не работает.

Для справки мой .wsgi выглядит так:

import os
import sys
sys.path.append(os.getcwd())
from ngl import app as application

Мое приложение называется ngl.py и оно находится в той же папке, что и файл .wsgi.

Спасибо!

1 ответ

Текущая рабочая директория в mod_wsgi не будет там, где расположен WSGI script, поэтому вы не должны использовать os.getcwd(). См:

http://code.google.com/p/modwsgi/wiki/ApplicationIssues#Application_Working_Directory

Чтобы сделать то, что вы хотите, используйте:

sys.path.append(os.path.dirname(__file__))

Это вычисляет каталог, в который входит файл WSGI script, получая компонент пути каталога имени файла WSGI script, записанный в переменной __file__.

licensed under cc by-sa 3.0 with attribution.