3

我在第 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.

但我在这里得到错误。

快速搜索表明我应该像这样设置我的 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。如何正确解决此问题?

4

4 回答 4

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除非导入和执行 - 正如我所建议的那样。

于 2012-05-17T05:13:07.710 回答
1

你真的应该setup_environ按照另一个答案中的建议使用。

有关此特定异常的提示:DJANGO_SETTINGS_MODULE是 Python 模块名称,因此它可能不以“.py”结尾。通常,这将是your_django_site.settings并且模块/目录your_django_site必须位于sys.path.

于 2012-05-17T09:44:22.167 回答
0

所有不在项目中的 Django 代码都应该从 Django REPL 运行,可以通过 获得./manage.py shell,或者作为独立脚本运行。

于 2012-05-17T04:46:17.260 回答
0

为了在 Django 的 shell 中测试任何东西,你应该使用 Django shell:

python manage.py shell

这将启动一个 Python 解释器,它将神奇地将您的设置文件(以及您的项目的其余部分)放在 Python 路径上。

(这假设您已经有一个项目。如果没有,请使用django-admin.py startproject my_project_name。)

于 2012-05-17T04:47:33.730 回答