2011-11-23 2 views
7

subscribe이라는 응용 프로그램이있는 장고 프로젝트가 있습니다. 루트 urls.py에서 나는 subscribeurls.py에서 포함을 사용합니다. Django uwsgi 가져 오기 오류

나는 INSTALLED_APPS subscribe과 내 의견을 호출하기위한 subscribe.views.<name>를 사용 subscribeurls.py에 넣어. 서버가 python manage.py runserver으로 로컬로 실행되면 정상적으로 작동합니다. 그러나 서버가 virtualenv와 함께 nginx + uwsgi를 실행할 때 나는 ImportError: No module named subscribe을 얻었습니다. subscribeproject.subscribe으로 변경하고 INSTALLED_APPS을 변경하고 subscribeurls.pysubscribe.views.<name>에서 project.subscribe.views.<name>으로 변경하면 정상적으로 작동합니다.

uwsgi의 설정 :

[uwsgi] 
socket = 127.0.0.1:9003 
workers = 2 
master = true 
virtualenv = /home/user/python 
chdir = /home/user 
env = DJANGO_SETTINGS_MODULE=project.settings 
module = django.core.handlers.wsgi:WSGIHandler() 
daemonize = /home/user/uwsgi.log 

가 왜 절대 경로 가져 오기를 사용해야하고 어떻게 VIRTUALENV와의 nginx + uwsgi에 상대적 다시로 변경할 수 있습니까?

+0

중 하나를 이미 포함 VIRTUALENV 시작 스크립트를 통해 또는 다른 –

+0

내 시작 스크립트 파이썬 경로에'project'를 추가 그것 : sys.path.insert (0, '/ home/user/project') – ZedXter

+0

Django는 패키지로 __init__.py를 가진 폴더를 위협합니다. 'wsgi' 스크립트에서'/ home/user/project'를 루트 디렉토리로 설정 했으므로'python manage.py runserver'가 작동하는 것처럼 작동해야합니다. –

답변

7

uwsgi 구성에는 pythonpath=/path/where/lives/settings.py/ 지시어가 포함되어야하므로 파이썬 인터프리터는 앱을 찾을 위치를 알 수 있습니다.

uwsgi 설정 옵션에 대한 추가 정보 찾기 :

+0

답변과 매우 유용한 링크 주셔서 감사합니다. – ZedXter

+0

Af 이걸 알아 내려고 애 쓰면서 수많은 시간을 보냈지 만, 당신의 대답의 문구가 도움이되었습니다. 고마워요 :) – Pztar