假设我有一个脚本可以做很多事情,并且在接近结尾的地方不能很好地工作.我希望能够start_ipython()在这一点上添加一个函数,这会在此时停止脚本,让我用ipython检查变量等等.我怎样才能做到这一点?
Nou*_*him 15
请注意,这在IPython-0.11中已更改.而不是下面描述的内容,只需使用以下导入:
from IPython import embed as shell
Run Code Online (Sandbox Code Playgroud)
以下答案适用于0.11之前的IPython版本.
在您想要进入ipython的区域中,定义它
def start_ipython():
from IPython.Shell import IPShellEmbed
shell = IPShellEmbed()
shell()
Run Code Online (Sandbox Code Playgroud)
并调用start_ipython你想要放入解释器的地方.
这将使你进入一个翻译,并将保留locals()在那一点.
如果您想要常规shell,请执行此操作
def start_python():
import code
code.interact()
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请查看上述功能的文档.我建议您尝试ipython,如果它抛出一个ImportError,切换到正常,这样即使没有安装ipython也能正常工作.
最简单的方法是使用内置调试器.在您希望执行停止时,只需执行以下操作:
import pdb; pdb.set_trace()
Run Code Online (Sandbox Code Playgroud)
并且您将被转储到pdb shell中,这允许您检查变量并更改它们.
还有一个外部ipdb包,您可以通过easy_install它来以相同的方式工作.