Django uwsgi导入错误

时间:2011-11-23 11:48:19

标签: django import nginx virtualenv uwsgi

我有一个名为subscribe的应用程序的Django项目。在root urls.py中,我使用subscribe的{​​{1}}中的include。

我将urls.py INSTALLED_APPSsubscribe subscribe urls.py用来subscribe.views.<name>来调用我的观点。当服务器在本地作为python manage.py runserver运行时,一切正常。但是当服务器使用virtualenv在nginx + uwsgi上运行时,我得到了ImportError: No module named subscribe。 当我在subscribeproject.subscribe INSTALLED_APPS中将subscribe更改为urls.py时,将subscribe.views.<name>更改为project.subscribe.views.<name>一切正常。

uwsgi config:

[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上的相对位置?

1 个答案:

答案 0 :(得分:8)

您的uwsgi配置应该包含pythonpath=/path/where/lives/settings.py/指令,因此python解释器会知道在哪里找到您的应用。

查找有关uwsgi配置选项的更多信息: