Python インタープリターを初期化して、メモリに変数が既にあるようにするにはどうすればよいですか? たとえば、[ni]Python インタープリターを初期化し、最初の入力として次のように入力するにはどうすればよいでしょうか。
In [1]: today
Out[1]: '2015-05-05 17:49:32.726496'
最初に名前をバインドせずにstr(today = datetime.datetime.today())
?
Python インタープリターを初期化して、メモリに変数が既にあるようにするにはどうすればよいですか? たとえば、[ni]Python インタープリターを初期化し、最初の入力として次のように入力するにはどうすればよいでしょうか。
In [1]: today
Out[1]: '2015-05-05 17:49:32.726496'
最初に名前をバインドせずにstr(today = datetime.datetime.today())
?
他の回答に加えて、次のように明示的にインタラクティブ モードに切り替えることができます。
// setup.py
import code, datetime
today = datetime.datetime.today()
code.interact(local=locals())
通常実行
python setup.py
標準の Python インタープリターには 3 つのオプションがあります。
python -i setup.py
、ツァマンの答えで説明されているようにsetup.py
で説明されているように、内からインタラクティブ モードにドロップするPYTHONSTARTUP=setup.py
。最後のものは、Python を何百回も開始および停止する場合に役立ちます。同じexport PYTHONSTARTUP=setup.py
シェルにいる限り、常にロードされますsetup.py
。または、より永続的にしたい場合は、プロファイル (または Windows システム コントロール パネルの環境変数など) に入れます。
PYTHONSTARTUP
virtualenvwrapper
とそのpost_activate
フックで特に便利です。フックを設定するだけexport PYTHONSTARTUP=${VIRTUAL_ENV}/setup.py
で、環境ごとに異なる設定を行うことができます。
実際、実際に行うことは、 1 回限りの一時的な値-i
でオーバーライドすることです。PYTHONSTARTUP
IPython には、独自の非常に強力な (ただしやや複雑な)構成およびカスタマイズ システムがあります。多数の異なるプロファイルを作成し、それぞれを編集して と の使用を有効または無効に-i
したり、別の変数名を使用するようPYTHONSTARTUP
に変更PYTHONSTARTUP
したり、カーネルが起動するたびにさまざまなコード行を実行したりできます。ターミナルで使用している場合、必要なもののほとんどはTerminal IPython options の下にあります。
「セットアップ」コードを含むスクリプトを作成し、それを実行して対話モードに入ることができます。
例えば:
# foo.py
import datetime
today = datetime.datetime.today
実行:
python -i foo.py
>>> today
'2015-05-05 17:49:32.726496'
IPython も同じオプションをサポートする必要があると思います。具体的には、IPython のもう 1 つの代替方法は、単に開始してから次のように言うことです。
In [1]: %run foo.py
これにより、現在のシェルでそのスクリプトが実行され、そこで定義されているすべてにアクセスできるようになります。