2

Python インタープリターを初期化して、メモリに変数が既にあるようにするにはどうすればよいですか? たとえば、[ni]Python インタープリターを初期化し、最初の入力として次のように入力するにはどうすればよいでしょうか。

In [1]: today
Out[1]: '2015-05-05 17:49:32.726496'

最初に名前をバインドせずにstr(today = datetime.datetime.today())

4

4 に答える 4

3

他の回答に加えて、次のように明示的にインタラクティブ モードに切り替えることができます。

// setup.py
import code, datetime
today = datetime.datetime.today()
code.interact(local=locals())

通常実行

python setup.py
于 2015-05-06T01:04:15.207 に答える
3

標準の Python インタープリターには 3 つのオプションがあります。

最後のものは、Python を何百回も開始および停止する場合に役立ちます。同じexport PYTHONSTARTUP=setup.pyシェルにいる限り、常にロードされますsetup.py。または、より永続的にしたい場合は、プロファイル (または Windows システム コントロール パネルの環境変数など) に入れます。

PYTHONSTARTUPvirtualenvwrapperとそのpost_activateフックで特に便利です。フックを設定するだけexport PYTHONSTARTUP=${VIRTUAL_ENV}/setup.pyで、環境ごとに異なる設定を行うことができます。

実際、実際に行うことは、 1 回限りの一時的な値-iでオーバーライドすることです。PYTHONSTARTUP


IPython には、独自の非常に強力な (ただしやや複雑な)構成およびカスタマイズ システムがあります。多数の異なるプロファイルを作成し、それぞれを編集して と の使用を有効または無効に-iしたり、別の変数名を使用するようPYTHONSTARTUPに変更PYTHONSTARTUPしたり、カーネルが起動するたびにさまざまなコード行を実行したりできます。ターミナルで使用している場合、必要なもののほとんどはTerminal IPython options の下にあります。

于 2015-05-06T01:08:09.863 に答える
2

「セットアップ」コードを含むスクリプトを作成し、それを実行して対話モードに入ることができます。

例えば:

# 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

これにより、現在のシェルでそのスクリプトが実行され、そこで定義されているすべてにアクセスできるようになります。

于 2015-05-06T01:01:39.900 に答える