n8h*_*rie 5 python logging ipython
我最近更频繁地使用 iPython (0.13.2),并且日志记录似乎是一个很棒的功能——如果我能让它正常工作的话。
目前,我可以通过 %magic 命令启动并指定日志文件ipython --logfile ~/path/fake.log,甚至可以在 iPython 会话的中间使用 %magic 命令%logstart ~/path/fake.log。
但是,我似乎无法从日志文件恢复会话,这似乎在一定程度上违背了目的。我已经搜索过 Google 和 SO,但是 SO 或文档中推荐的解决方案似乎都不能正常工作。
我努力了:
%logstart ~/path/fake.log append(源,结果:旧日志继续但未加载,上一个会话中的变量未定义)两个部分工作(因为它们尝试导入日志文件)但似乎不用于此目的是:
ipython -i ~/path/fake.log源,结果:如果会话导入和工作中没有错误。如果有任何错误,则不会导入并且变量仍然不可用。日志记录不会恢复。)。%run ~/path/fake.log没有来源,只是猜测和尝试。结果:与上面相同。如果没有错误并且变量为 GTG,则运行文件。如果有错误,则不起作用。不恢复日志记录。)iPython 0.13.2 中是否有任何方法可以有效地“从上次中断的地方开始”恢复会话?感谢您的任何帮助,您可以提供。
所有这些保存/恢复会话的工作方式都是将交互保存为 py 文件,然后在恢复期间尝试运行 py 文件。如果发生像未定义变量这样的错误,则会提示 python 错误并停止恢复,但它会恢复存储到错误条件的值。
为了避免存储错误条件,请使用所选答案中的建议:如何保存 Python 交互式会话?:
save my_session_name 1-4 6 9
Run Code Online (Sandbox Code Playgroud)
我的会话将获取 In[1] 到 In[4] 中的命令,并跳过 In[5]、保存 In[6]、跳过 In[7]、In[8] 并保存 In[9]。这样您就可以避免令人反感的互动。
稍后恢复会话:
%run my_session_name.py
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3260 次 |
| 最近记录: |