我正在阅读第4章:Django教程的模板,我正在尝试使用Python在Emacs劣质模式下运行以下内容:
>>> from django import template
>>> t = template.Template('My name is {{ name }}.')
>>> c = template.Context({'name': 'Adrian'})
>>> print t.render(c)
My name is Adrian.
>>> c = template.Context({'name': 'Fred'})
>>> print t.render(c)
My name is Fred.
但我收到错误here。
快速搜索表明我应该像这样设置我的DJANGO_SETTINGS_MODULE:
>>> import os
>>> os.environ["DJANGO_SETTINGS_MODULE"] = "settings.py"
但是,我遇到了这个错误:
ImportError: Could not import settings 'settings.py' (Is it on sys.path?): No module named settings.py
我正在使用Fedora 16.如何正确解决此问题?
答案 0 :(得分:2)
您可以在python manage.py shell
中执行此操作,因为settings.py
目录中会有.
。
考虑settings.py
只是另一个python库,你需要确保将其添加到sys.path
然后你可以这样做:
import settings
from django.core.management import setup_environ
setup_environ(settings) # Setting up the env settings
这会为您的环境设置设置。 [这是正确的方式]
settings.py
中没有秘密配方,因为django本身就是python的库,所以除非导入和执行,否则不能默认设置sys.path
的任何路径 - 正如我所建议的那样。
答案 1 :(得分:1)
你应该按照另一个答案的建议使用setup_environ
。
有关此特定异常的提示:DJANGO_SETTINGS_MODULE
是Python模块名称,因此它可能不以“.py”结尾。通常,这将是your_django_site.settings
,模块/目录your_django_site
必须位于sys.path
。
答案 2 :(得分:0)
项目中没有的所有Django代码都应该从Django REPL运行,可以通过./manage.py shell
运行,也可以作为standalone script运行。
答案 3 :(得分:0)
为了测试shell中Django的任何内容,你应该使用Django shell:
python manage.py shell
这将启动一个Python解释器,它将在Python路径上神奇地拥有您的设置文件(以及项目的其余部分)。
(这假设您已经有一个项目。如果没有,请使用django-admin.py startproject my_project_name
。)