5

WindowsでIDLEシェルからdjangoプロジェクトをテストしたいと思います。次のコマンドを実行します

from django.template import Template, Context
t = Template('test template')

しかし、次のエラーが発生します。

Traceback (most recent call last):


File "<pyshell#1>", line 1, in <module>
    t = Template('test template')
  File "C:\Program Files\Python26\lib\site-packages\django\template\__init__.py", line 164, in __init__
    if settings.TEMPLATE_DEBUG and origin is None:
  File "C:\Program Files\Python26\lib\site-packages\django\conf\__init__.py", line 28, in __getattr__
    self._import_settings()
  File "C:\Program Files\Python26\lib\site-packages\django\conf\__init__.py", line 59, in _import_settings
    self._target = Settings(settings_module)
  File "C:\Program Files\Python26\lib\site-packages\django\conf\__init__.py", line 94, in __init__
    raise ImportError, "Could not import settings '%s' (Is it on sys.path? Does it have syntax errors?): %s" % (self.SETTINGS_MODULE, e)
ImportError: Could not import settings 'C:\Program Files\Python26\Lib\site-packages\django\conf' (Is it on sys.path? Does it have syntax errors?): Import by filename is not supported.

あなたは私を助けることができます?

4

7 に答える 7

2

Djangoはsettings.pyのようないくつかのファイルをロードする必要があります。このタスクを支援するために、Djangoには独自のシェル(IDLEの場合もあります)がバンドルされています。IPythonがインストールされている場合は、代わりにDjangoがそれを使用します。

シェルにアクセスするには、ルートディレクトリにあるmanage.pyファイルを使用します。

python manage.py shell

それでも本当にIDLEを「./manage.pyshell」の範囲外で完全に使用したい場合は、manage.pyファイルを見て、Djangoが必要なすべてのファイルにどのようにロードされるかを確認してください。

ボーナスとして、shell_plusのdjango-command-extensionsを調べてください(すべてのモデルを自動的にロードするなど、いくつかの優れた追加機能を提供します)。

于 2009-09-20T15:57:31.597 に答える
1

cmdからidleを使用するために、Windows7で次のことを行いました。

  1. パスシステム環境変数にidle.pyの場所(C:\ Python27 \ Lib \ idlelibなど)へのパスが含まれていることを確認しました。私がそこにいる間、PythonとScriptsフォルダーの両方が含まれていることも確認しました(後者には、pipによってインストールされたときにdjango-manage.pyが含まれています)

    パス: C:\ Python27 \; C:\ Python27 \ Scripts; C:\ Python27 \ Lib \ idlelib; .. ..

    上記のパスは、Pythonのインストールによって異なる場合があります。

  2. オプション:.py拡張子の入力を避けるために、PATHTEXTシステム環境変数に.PY拡張子が含まれていることを確認しました。

    パステキスト:.COM; 。EXE; ...、。PY

これで、cmdの作業中に行うのは、アイドル状態で実行するために次のように入力することだけです。

  • アイドル状態のファイルを開きます(同じディレクトリにあります)。

    idle models.py
    

    これにより、models.pyファイルが開いてアイドル状態で編集できます

  • アイドルを使用してシェルを開きます(manage.pyと同じディレクトリにあります)

    idle -r manage.py shell
    

:.PYがPATHTEXTシステム環境変数にない場合は、.py拡張子をアイドルに追加する必要がある場合があります

これで、IDLEを利用できるようになりました。お役に立てば幸いです。

于 2014-07-26T06:00:09.347 に答える
1

DjangoプロジェクトディレクトリからIDLEを実行する必要があるだけです。virtualenvを使用している場合:

cd /your/virtualenv/directory
. bin/activate
cd project_directory
python -m idlelib.idle

それで全部です。Djangoプロジェクトから任意のモジュールと関数をインポートして実行できます。

于 2018-07-06T08:32:12.937 に答える
0

ショートカットを作成し、次のような引数を持つように変更します。

C:\Python27\pythonw.exe c:\Python27\lib\idlelib\idle.py -r d:\projects\project_X\manage.py shell

Windowsを使用している場合PYTHONSTARTUPは実行されますが、新しいプロセスが開始され、ファイルで定義した機能が失われPYTHONSTARTUPます。

事実上、下で2回起動することがわかります(最初は緑、次に赤)。

Python 2.7.2(デフォルト、2011年6月12日、15:08:59)[MSC v.1500 32ビット(Intel)] on win32 Type copyrightcreditsまたはlicense()詳細については。

startup.pyが実行されました

Python 2.7.2(デフォルト、2011年6月12日、15:08:59)[MSC v.1500 32ビット(Intel)] on win32 Type、、helpまたは詳細については、(InteractiveConsole copyrightcreditslicense

これは、仮想envとshell_plusおよびipythonをインストールする前に当てはまりました。これらの3つのうちの1つはそれをホースで止めました-今IDLEコンソールでゴミを取得します:

0; 32mIn 1; 32m1 0; 32m:0m

于 2012-04-26T16:49:01.767 に答える
0

Windowsを使用していると仮定します。

  1. IDLEリンクを右クリックして、プロパティを取得します。ターゲットパスを、django-projectが実行されているパス(manage.pyファイルのあるディレクトリ)に変更します。
  2. IDLEを開始
  3. 実行する

    osをインポートします。os.environ.setdefault( "DJANGO_SETTINGS_MODULE"、 "my_project_root_name.settings")

これで、IDLEに適切なコンテキストが設定され、設定を認識し、django-pathでクラスを実行できるようになりました。

もっとエレガントな方法を考えられるかどうか教えてください。(Python3.6を使用したWin10でテスト済み)

于 2017-03-23T01:23:29.313 に答える
0

パスでアイドル状態になっている場合は、次を実行できます。

idle -r manage.py shell

パスにアイドル状態がなく、追加したくない場合は、次のコマンドを実行できます。

python -m idlelib -r manage.py shell

*この回答は、AlexandroPerezの回答に基づいています。

于 2021-01-30T21:29:13.587 に答える
0

manage2.pyと同じコードで(同じディレクトリに)という新しいファイルを作成し、その行をにmanage.py置き換えます。その後、アイドル状態で実行します。この方法には、アイドル状態でコード補完を使用できるという利点があります。execute_from_command_line(sys.argv)execute_from_command_line(['shell'])manage.py

于 2021-05-10T16:51:25.163 に答える