我有一个名为subscribe
的应用程序的Django项目。在root urls.py
中,我使用subscribe
的{{1}}中的include。
我将urls.py
INSTALLED_APPS
和subscribe
subscribe
urls.py
用来subscribe.views.<name>
来调用我的观点。当服务器在本地作为python manage.py runserver
运行时,一切正常。但是当服务器使用virtualenv在nginx + uwsgi上运行时,我得到了ImportError: No module named subscribe
。
当我在subscribe
和project.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上的相对位置?
答案 0 :(得分:8)
您的uwsgi配置应该包含pythonpath=/path/where/lives/settings.py/
指令,因此python解释器会知道在哪里找到您的应用。
查找有关uwsgi配置选项的更多信息: