如果您使用 -i 选项调用 cpython 解释器,它将在完成任何命令或脚本运行后进入交互模式。有没有办法在程序中让解释器即使没有给出 -i 也能做到这一点?明显的用例是在发生异常情况时通过交互检查状态进行调试。
Nick
问问题
637 次
4 回答
14
你想要代码模块。
#!/usr/bin/env python
import code
code.interact("Enter Here")
于 2009-02-26T17:25:18.420 回答
5
设置 PYTHONINSPECT 环境变量。这也可以在脚本本身中完成:
import os
os.environ["PYTHONINSPECT"] = "1"
对于调试意外异常,您还可以使用这个不错的配方http://code.activestate.com/recipes/65287/
于 2009-02-26T19:06:18.520 回答
3
在另一个答案中提到的食谱sys.excepthook
使用, 听起来像你想要的。否则,您可以code.interact
在程序退出时运行:
import code
import sys
sys.exitfunc = code.interact
于 2009-02-26T23:49:05.157 回答
1
我所知道的最好的方法是:
from IPython import embed
embed()
它允许访问当前范围内的变量,并为您带来 IPython 的全部功能。
于 2013-08-01T08:48:04.023 回答