代码之家  ›  专栏  ›  技术社区  ›  GrantU

在终端中运行django-python文件

  •  2
  • GrantU  · 技术社区  · 12 年前

    我有一个Python文件,它是Django框架的一部分,名为facade.py

    from django.conf import settings
    from .gateway import Gateway
    
    class Facade(object):
    
    
    def __init__(self):
        self.gateway = Gateway(
            settings.password,
            settings.username,
            )
    

    我想在我的终端窗口中测试这个代码。这是我尝试过的:

    within virutal-env
    python
    >>> from my.apps.app.facade import Facade
    >>> object = Facade()
    

    但这给了我错误 ImportError:无法导入设置,因为环境变量DJANGO_Settings_MODULE未定义。

    为什么?

    4 回复  |  直到 12 年前
        1
  •  15
  •   Daniel Roseman    12 年前

    您不应该在一个普通的Python shell中这样做。使用Django启动shell,配置如下 ./manage.py shell 而不是 python .

        2
  •  1
  •   Marek Kowalski    12 年前

    尝试添加以下内容:

    from django.conf import settings
    
    if not settings.configured:
        settings.configure()
    

    祝你好运

        3
  •  1
  •   Sudipta    12 年前

    由于此函数使用Django,因此仅在python shell中运行它是不够的。Django文件需要加载很多东西,比如设置、模型等。

    您无法从python shell访问和运行django项目。Django不知道你想做什么项目。

    你必须做以下其中一件事:

    1. python manage.py shell
    2. 将操作系统中的DJANGO_SETTINGS_MODULE环境变量设置为mysite.SETTINGS
    3. 在python解释器中使用setup_environ:

      from django.core.management import setup_environ
      from mysite import settings
      setup_environ(settings)
      

    第一种方法是最简单、最好的方法。在django shell中运行您的代码。

        4
  •  0
  •   Andras Nemeth    12 年前

    正如错误消息所说,您必须定义 DJANGO_SETTINGS_MODULE 环境变量:

    外壳内: export DJANGO_SETTINGS_MODULE=settings.module

    然后启动Python。