有人可以告诉我为什么我需要将我的项目根路径添加到 python 路径以及我的 WSGI 文件中的应用程序本身吗?
项目库称为“djapp”,应用程序称为“myapp”。
sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/..')
sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/../djapp')
os.environ['DJANGO_SETTINGS_MODULE'] = 'djapp.settings'
如果我省略带有“/../djapp/”的行,日志会告诉我无法导入“myapp”,即使“djapp.settings”是。 (验证 'djapp' 已导入)
它可以使用 ./manage.py 命令正常运行。有一个
__init__
在项目文件夹中。为了测试,我使用
addsitedir
看到了同样的问题:site.addsitedir('/home/user/web/project/')
site.addsitedir('/home/user/web/project/djapp')
最佳答案
自 djapp
(django 项目文件夹)位于也属于部署的父文件夹中,我将其重命名为 djapp
文件夹简单到 project
.
那么这段代码总是正确的:
sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/..' )
sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/../project')
os.environ['DJANGO_SETTINGS_MODULE'] = 'project.settings'
完整的文件夹布局是:
host.example.com\
etc\
bin\
project\
logs\
你有什么。这样项目总是可以被称为项目:)
希望有帮助。
格茨G
关于WSGI 下需要的项目 * 和 * 应用程序的 Django sys.path.append,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2515686/