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

これにより、環境に合わせて設定がセットアップされます。【これが正しい道】

秘密のレシピはありません.django自体はPythonのライブラリであるため、インポートして実行しない限りsettings.py、デフォルトでパスを設定することはできません-私が提案したように.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 のシェルで何かをテストするには、Django シェルを使用する必要があります。

python manage.py shell

これにより、魔法のように設定ファイル (およびプロジェクトの残りの部分) が Python パス上にある Python インタープリターが起動します。

(これは、既にプロジェクトがあることを前提としています。ない場合は、を使用してdjango-admin.py startproject my_project_nameください。)

于 2012-05-17T04:47:33.730 に答える