【发布时间】:2013-08-08 11:00:42
【问题描述】:
当我在交互式会话中运行时(在我的情况下为 ipython),并且当前在调试器中(ipdb 或 pdb)我希望能够将变量放入主交互式命名空间来自调试命名空间。
如果我的代码崩溃了,这很有用,但已经完成了大量工作,其中一些可以挽救以节省时间(例如,从磁盘加载数据)。
所以我想要的是这样的,例如:
>>> run -m my.module
loading data from disk...
done loading data.
processing data...
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
...
-> 这里在处理过程中出了点问题,但是数据的加载工作正常......所以我会进入调试器检查发生了什么,并查看loaded_data:
>>> debug
ipdb> len(loaded_data)
100000
-> 然后我希望能够将此变量保存到交互式命名空间中,以便在调试器外部使用,如下所示:
ipdb> save_to_interactive('loaded_data')
ipdb> exit
>>> len(loaded_data)
100000
【问题讨论】:
-
这不是 ipython 已经做的吗?如果不确定,请查看 locals()。
标签: python debugging namespaces