在终端中运行django python文件

时间:2013-09-19 12:40:43

标签: python django

我有一个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 个答案:

答案 0 :(得分:14)

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

答案 1 :(得分:1)

由于此函数使用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)
    
  4. 第一个是最简单和最好的方法。在django shell中运行你的代码。

答案 2 :(得分:0)

尝试添加此内容:

from django.conf import settings

if not settings.configured:
    settings.configure()
祝你好运!

答案 3 :(得分:0)

与错误消息一样,您必须定义DJANGO_SETTINGS_MODULE环境变量:

在shell中:export DJANGO_SETTINGS_MODULE=settings.module

然后启动Python。