我有一个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。
为什么?
答案 0 :(得分:14)
您不应该在普通的Python shell中执行此操作。通过执行./manage.py shell
而不仅仅是python
来配置Django来启动shell。
答案 1 :(得分:1)
由于此函数使用Django,因此在python shell中运行它是不够的。有许多东西,比如设置,模型等需要加载才能运行Django文件。
您无法从python shell访问和运行django项目。 Django不知道你想要做什么项目。
你必须做以下事情之一:
python manage.py shell
在python解释器中使用setup_environ:
from django.core.management import setup_environ
from mysite import settings
setup_environ(settings)
第一个是最简单和最好的方法。在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。