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