手动设置DJANGO_SETTINGS_VARIABLE

时间:2011-06-19 11:11:22

标签: python django

为了能够使用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 文件。

2 个答案:

答案 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)