22

後でメモリに簡単にロードできるセッション変数を保存すると便利です。

4

5 に答える 5

13
In [23]: %logstart /tmp/session.log
Activating auto-logging. Current session state plus future input saved.
Filename       : /tmp/session.log
Mode           : backup
Output logging : False
Raw input log  : False
Timestamping   : False
State          : active

In [24]: x = 1

In [25]: %logstop

In [26]: quit()
Do you really want to exit ([y]/n)? y

次に、次の方法でセッションを復元できます。

% ipython -log /tmp/session.log 
Activating auto-logging. Current session state plus future input saved.
Filename       : ipython_log.py
...

In [1]: x
Out[1]: 1

「セッションのロギングと復元」の詳細については、 docsを参照してください。

これは、IPython によって実行されるコマンドを格納するだけであることに注意してください。IPython セッションの状態は保存されません。セッションを復元するには、コマンドを再実行する必要があります。


PYTHONSTARTUP環境変数を次のようなファイルを指すように設定した場合startup.py:

PYTHONSTARTUP=/path/to/startup.py

次に、/path/to/startup.py に以下を入力します。

try:
    # https://stackoverflow.com/a/5377051/190597 (Tom Dunham)
    __IPYTHON__
except NameError:
    pass
else:
    # https://stackoverflow.com/a/15898875/190597 (user2261139)
    from IPython import get_ipython
    ipython = get_ipython()
    ipython.magic("%logstart /tmp/session.log")

この場合、IPython は、対話型セッションを開始するたびに %logstart を自動的に呼び出します。

于 2012-09-20T01:34:06.203 に答える
3

似たようなものを探して、save_ipython_variablesに出くわしました:

save-ipython-variablesこれにより、グローバル IPython 変数を簡単にディスクに保存し、必要になったときにグローバル名前空間にロードし直すことができます。まったく新しい IPython セッションであっても同様です。

まだ使う機会は少ないですが、期待できそうです。

于 2013-09-01T20:35:13.790 に答える