Ответ 1
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
Подробнее о "Журнале и восстановлении сеанса" см. документы.
Обратите внимание, что это просто хранит команды, запущенные 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 всякий раз, когда вы начинаете интерактивный сеанс.