为了能够使用django的空闲shell我正在尝试手动设置DJANGO_SETTINGS_VARIABLE。我包含了settings.py驻留在sys.path.and中的目录,并且能够导入它。但是以下内容没有似乎工作。
import settings
from django.core.management import execute_manager
execute_manager(settings)
我也试过
settings = imp.find_module('settings')
execute_manager(settings)
从manage.py中获取线索,但没有任何帮助。这里发生了什么,以及文件如何作为模块导入,我记得模块需要在目录中有一个 inti 文件。
答案 0 :(得分:5)
我在加载常规使用场景之外的设置方面遇到了一些困难。我不是100%肯定我在这里理解你的困难,所以我会给你一些可能性,如果你能澄清一下,我会尽力帮助你。
如果您只需要使用空闲shell,我认为django可以通过以下方式轻松完成:
python manage.py shell
假设空闲是你的默认shell(虽然我希望你能看看ipython,如果是这样的话,因为从长远来看你可能会喜欢这个开关)。
如果你想为django设置系统变量,它被称为:DJANGO_SETTINGS_MODULE,而不是DJANGO_SETTINGS_VARIABLE,或者至少是在我使用它时。在启动shell之前如何设置变量可能是特定于平台的。在linux上你想要编辑你的.bashrc。在Windows上,你想做一个:“SET DJANGO_SETTINGS_MODULE = your.python.path.to.django.settings。”
如果你想在以这种方式启动shell之前在程序中动态设置环境,你可以这样做,例如:
import settings
from django.core.management import setup_environ
setup_environ(settings)
希望这会有所帮助;如果你需要别的东西,请告诉我。
答案 1 :(得分:1)
您应该使用configure()
from django.conf import settings
from myapp import myapp_defaults
settings.configure(default_settings=myapp_defaults, DEBUG=True)