Django uwsgi导入错误

7
我有一个Django项目,其中有一个名为subscribe的应用程序。在根目录的urls.py中,我使用了来自subscribe应用程序的urls.py的include函数。
我将subscribe加入到了INSTALLED_APPS中,并在subscribeurls.py中使用subscribe.views.<name>来调用我的视图。当我本地运行python manage.py runserver时一切正常。但是当服务器在nginx+uwsgi with virtualenv下运行时,我得到了ImportError: No module named subscribe错误。 当我将subscribe更改为project.subscribe并在INSTALLED_APPS中将subscribeurls.py中的subscribe.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

为什么应该使用绝对路径导入,如何在nginx+uwsgi和虚拟环境中将其更改为相对路径?


project 添加到您的 Python 路径中,可以通过虚拟环境启动脚本或其他方式实现。 - Timmy O'Mahony
我的启动脚本已经包含了它:sys.path.insert(0, '/home/user/project') - ZedXter
你能提供一下uwsgi的配置吗? - Victor Miroshnikov
我不明白,在评论中如何使用Markdown :( - ZedXter
@ZedXter,请尝试将pythonpath=/path/where/lives/settings.py/添加到您的uwsgi配置中。 - Victor Miroshnikov
显示剩余3条评论
1个回答

8

在花费了无数小时努力解决这个问题后,你回答的措辞帮了我很多。非常感谢 :) - Pztar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接