4

我最近更频繁地使用 iPython (0.13.2),日志记录似乎是一个很棒的功能——如果我能让它正常工作的话。

目前,我可以通过ipython --logfile ~/path/fake.log%magic 命令,甚至在 iPython 会话的中间启动和指定日志文件%logstart ~/path/fake.log

但是,我似乎无法从日志文件中恢复会话,这似乎部分违背了目的。我已经搜索了 Google 和 SO,但在 SO 或文档中推荐的解决方案似乎都不是很好。

我努力了:

  • 来自巴什
    • ipython -log ~/path/fake.log来源,结果[TerminalIPythonApp] Unrecognized flag: '-log':)
    • ipython -logplay ~/path/fake.log来源和许多其他人,结果[TerminalIPythonApp] Unrecognized flag: '-logplay':)
    • ipython --logfile=~/path/fake.log,结果:新日志开始,上一个会话的变量未定义)
  • 来自 iPython
    • %logstart ~/path/fake.log append,结果:旧日志继续但未加载,上一个会话中的变量未定义)

两个部分工作(因为他们尝试导入日志文件)但似乎不用于此目的的是:

  • 来自 bash:(ipython -i ~/path/fake.log结果:如果会话导入和工作中没有错误。如果有任何错误,则未导入且变量仍然不可用。未恢复日志记录。)。
  • 来自ipython:(%run ~/path/fake.log没有来源,只是猜测并尝试了。结果:与上面相同。如果没有错误并且变量是GTG,则运行文件。如果有错误,则不起作用。不恢复日志记录。)

iPython 0.13.2 中是否有任何方法可以恢复有效地“从您离开的地方开始”的会话?感谢您的任何帮助,您可以提供。

4

1 回答 1

2

所有这些保存/恢复会话通过将交互保存为 py 文件然后在恢复期间尝试运行 py 文件来工作。如果发生诸如未定义变量之类的错误,则会提示 python 错误并恢复在那里停止,但它确实将存储的值恢复到错误条件。

为避免存储错误条件,请使用如何保存 Python 交互式会话?

save  my_session_name   1-4 6  9

我的会话将在 In[1] 到 In[4] 中获取命令并跳过 In[5]、保存 In[6]、跳过 In[7]、In[8] 并保存 In[9]。这样你就可以避免冒犯性的交互。

稍后恢复会话:

%run my_session_name.py
于 2013-07-24T15:28:07.727 回答