【问题标题】:Running a django python file in terminal在终端中运行 django python 文件
【发布时间】:2013-09-24 13:12:06
【问题描述】:

我有一个 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 未定义。

为什么?

【问题讨论】:

  • 你有什么版本的django?框架里面的facade.py在哪里???

标签: python django


【解决方案1】:

您不应该在普通的 Python shell 中执行此操作。使用 ./manage.py shell 而不是 python 配置的 Django 启动 shell。

【讨论】:

  • 谢谢,我不知道你能做到这一点。
  • 你也不知道你应该... ;)
【解决方案2】:

由于此函数使用 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 中运行您的代码。

【讨论】:

    【解决方案3】:

    尝试添加这个:

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

    祝你好运!

    【讨论】:

      【解决方案4】:

      就像错误消息所说,你必须定义DJANGO_SETTINGS_MODULE 环境变量:

      在外壳中:export DJANGO_SETTINGS_MODULE=settings.module

      然后启动 Python。

      【讨论】:

        猜你喜欢
        • 2021-07-12
        • 1970-01-01
        • 2019-06-01
        • 2022-10-03
        • 1970-01-01
        • 1970-01-01
        • 2011-09-26
        • 2021-06-01
        • 2015-10-12
        相关资源
        最近更新 更多