Путаница с путями Python в оболочке Python против сервера FCGI: почему они отличаются? - PullRequest
1 голос
/ 28 августа 2009

Я пытаюсь развернуть мое приложение Django в производство на общем сервере.

Кажется, у меня проблемы с путем Python, потому что я получаю сообщение об ошибке с сервера: Нет модуля с именем products.models

Однако, когда я захожу в корень приложения и запускаю оболочку, модули загружаются нормально.

'>>> from products.models import Answer
'>>> import sys
'>>> sys.path
['/home/SecretUserAcct/django-projects/review_app', ...]

Указанный выше путь указывает на корень приложения Django.

Я предполагаю, что это проблема с путем Python, но я не уверен, что происходит не так.

Вот файл fcgi: $ cat ~ / public_html / django.fcgi

#!/usr/local/bin/python2.6 
import sys
import os

# Insert PYTHONPATH values here, including the path to your application
#sys.path.insert(0, '<path_to_your_app_directory>')
sys.path.insert(0, '/home/SecretUserAcct/django-projects/')
# Provide the location of your application's settings file.
os.environ['DJANGO_SETTINGS_MODULE'] = 'review_app.settings'

from django.core.servers.fastcgi import runfastcgi
runfastcgi(method = "threaded", daemonize = "false", maxchildren=3, minspare=0, maxspare=1)

Какое понимание мне здесь не хватает?

Ответы [ 2 ]

0 голосов
/ 28 августа 2009

Сервер Django dev и оболочка manage.py помещают текущий каталог (каталог, из которого вы запускали manage.py) в ваш путь к Python. При работе в производственном режиме вам необходимо соответствующим образом изменить свой путь, если у вас есть код, который использует эту функцию.

0 голосов
/ 28 августа 2009

Я в некотором замешательстве - если у вас есть путь в рабочем случае:

'/home/SecretUserAcct/django-projects/review_app'

Т.е., включая приложение, почему вы вместо этого во втором нерабочем случае вставляете

'/home/SecretUserAcct/django-projects/'

т.е., без приложения? Конечно, вам понадобятся разные формы импорта в зависимости от того, что вы выбрали для добавления в sys.path, нет?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...