我最近更频繁地使用iPython(0.13.2),并且日志记录似乎是一个很棒的功能 - 如果我可以让它正常工作。
目前,我可以通过ipython --logfile ~/path/fake.log
启动和指定日志文件,甚至可以使用%magic命令%logstart ~/path/fake.log
在iPython会话中间指定日志文件。
但是,我似乎无法从日志文件中恢复会话,这似乎部分地破坏了目的。我已经搜索过Google和SO,但是在SO或者文档中没有一个推荐的解决方案似乎工作得很好。
我试过了:
%logstart ~/path/fake.log append
(source,结果:旧日志继续但未加载,上一个会话中的变量未定义)两个部分工作(因为他们尝试导入日志文件)但似乎不是为此目的:
ipython -i ~/path/fake.log
(source,结果:如果会话中没有错误导入并正常工作。如果有任何错误,未导入且变量仍然不可用。记录未恢复。) %run ~/path/fake.log
(没有来源,只是猜测并尝试过。结果:与上面相同。如果没有错误并且变量是GTG则运行文件。如果有错误,则不起作用。不恢复记录。)iPython 0.13.2中有没有办法恢复有效“从你离开的地方开始”的会话?感谢您提供的任何帮助。
答案 0 :(得分:2)
所有这些保存/恢复会话都可以通过将交互保存为py文件然后尝试在恢复期间运行py文件来工作。如果发生类似未定义变量的错误,则会提示python错误并在那里恢复暂停,但它会恢复存储到错误条件的值。
为避免存储错误情况,请使用How to save a Python interactive session?所选答案中的建议:
save my_session_name 1-4 6 9
我的会话将在In [1]到In [4]中获取命令并跳过In [5],保存在[6]中,跳过In [7],In [8]并保存在[9]中。这样可以避免违规交互。
稍后恢复会话:
%run my_session_name.py