我在调用django脚本时遇到困难。这是我当前在根目录中所做的事情:
>>> import os
>>> os.environ['DJANGO_SETTINGS_MODULE'] = 'settings.py'
>>> from django.conf import settings
>>> settings.configure()
>>> settings.DATABASES
{}
settings.DATABASES
不能为空,所以我知道我没有正确初始化项目。我将如何在django2.1中做到这一点?我以前可以使用import settings; setup_environ(settings)
轻松地做到这一点,但现在已经不行了。
注意:我希望能够从任何目录运行以上命令。这是尝试从tmp
导入我的项目的示例:
(V) david$ cd /tmp && python
>>> import django
>>> from django.conf import settings
>>> settings.configure()
>>> django.setup()
>>> from users.models import *
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'users'
答案 0 :(得分:1)
您不需要运行settings.configure()
。要正确初始化,您可以执行以下操作:
if __name__ == '__main__':
import sys, os
sys.path.append(django_root)
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
from django.conf import settings
print (settings.DATABASES)
答案 1 :(得分:1)
2.1文档指出您现在需要使用setup()
。相关摘要:
import django
from django.conf import settings
settings.configure()
django.setup()
# Now this script or any imported module can use any part of Django it needs.
from myapp import models