2009-07-01 14 views
3

私はiPythonを使ってDjango製品を使っています。私はシェルを起動するときに自動的にロードされたモジュールを持つようにしようとしているiPythonとDjangoでプロファイルを使用する

のpython manage.pyシェル

私は.ipython/ipythonrcプロジェクトのルートディレクトリにコピーしに追加しましたファイル:私はシェルを起動するとき

import_someモジュール名MODEL1 MODEL2

しかし、これらの名前は、ロードされていません。

私は間違っていますか?

答えて

5

ipythonrcについては分かりませんが、モデルが必要な場合はdjango-extensionsを使用できます。お使いのシェルがあるので、あなたのソリューションが動作しません

python manage.py shell_plus 
1

がBryanWheelock:あなたはそれをインストールした後、あなたはすべてのモデルipythonセッションと自動ロードを開きますshell_plus含む新しい経営管理論コマンドの過多を、持っています産卵の結果はそれとの直接的な相互作用ではない。あなたがしたいことはこれです - 少なくとも、これは私がしていることです。

作業領域(python manage.py shellと入力した場所)内に、ipythonrcファイルを作成します。それには次のように置く:

include ~/.ipython/ipythonrc 

execute from django.contrib.auth.models import User 
# . 
# . 
# . 
execute import_some module_name model1 model2 

たとえば、私も私の中に以下の行を追加します。..

# Setup Logging 
execute import sys 
execute import logging 
execute loglevel = logging.DEBUG 
execute logging.basicConfig(format="%(levelname)-8s %(asctime)s %(name)s %(message)s", datefmt='%m/%d/%y %H:%M:%S', stream=sys.stdout) 
execute log = logging.getLogger("") 
execute log.setLevel(loglevel) 
execute log.debug("Logging has been initialized from ipythonrc") 
execute log.debug("Root Logger has been established - use \"log.LEVEL(MSG)\"") 
execute log.setLevel(loglevel) 
execute log.debug("log.setlevel(logging.DEBUG)") 
execute print "" 

これはあなたのモジュールでロギングを使用して、DRY、それを維持することができます。お役に立てれば。

0

shell_plus django-extensionsのコマンドは自動的にモデルをインポートできますが、ipythonのプロファイルをロードできないようです。私はこれを行うためにいくつかのハックな仕事をしました。

embedの代わりにipythonシェルを起動し、いくつかの引数を渡します。

私もブログの投稿を書いています。詳細はhere

です
関連する問題