我有一个 Django 项目,其中有一个名为 subscribe
的应用程序.在根 urls.py
我使用包含来自 subscribe
的 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 配置:
[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 上将其更改为相对路径?
最佳答案
你的 uwsgi 配置应该包括 pythonpath=/path/where/lives/settings.py/
指令,因此python解释器将知道在哪里可以找到您的应用程序。
查找有关 uwsgi 配置选项的更多信息:
关于Django uwsgi 导入错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8241680/