如何从 ipdb 中分配给 ipython 全局命名空间?
How can I assign to the ipython global namespace from within ipdb?
我在使用 %debug
魔法调试的 IPython 笔记本中有一个回溯。我想将回溯框架中的一个对象分配给 IPython 全局命名空间中的一个变量,这样我就可以在 ipdb
提示符(相当笨拙)之外处理它。最简单的方法是什么?
我现在通过在 ipdb 中 pickle 对象并将其从全局命名空间中取消 pickle 来解决这个问题,但我确信有更好的方法。
一种方法是将值分配给 module-member(类似于模块范围内的全局变量),它在您退出 pdb
后仍然存在session,因为该模块已经在 sys.modules
中,并留在那里。
1% os.path.exists(3254)
...
TypeError: coercing to Unicode: need string or buffer, int found
2% %debug
...
ipdb> os.MYVAR = 234
ipdb> q
3% os.MYVAR
3= 234
我在使用 %debug
魔法调试的 IPython 笔记本中有一个回溯。我想将回溯框架中的一个对象分配给 IPython 全局命名空间中的一个变量,这样我就可以在 ipdb
提示符(相当笨拙)之外处理它。最简单的方法是什么?
我现在通过在 ipdb 中 pickle 对象并将其从全局命名空间中取消 pickle 来解决这个问题,但我确信有更好的方法。
一种方法是将值分配给 module-member(类似于模块范围内的全局变量),它在您退出 pdb
后仍然存在session,因为该模块已经在 sys.modules
中,并留在那里。
1% os.path.exists(3254)
...
TypeError: coercing to Unicode: need string or buffer, int found
2% %debug
...
ipdb> os.MYVAR = 234
ipdb> q
3% os.MYVAR
3= 234