我有一个Python脚本,我想执行它到某一点,然后停止,并保持解释器打开,所以我可以看到它定义的变量,等等.
我知道我可以生成异常,或者我可以通过运行来调用调试器pdb.set_trace(),然后停止调试器,这是我目前使用的.
...但是有一个命令只会停止脚本,好像它已经完全结束了吗?这相当于注释脚本的其余部分(但我不喜欢这样做),或者return在函数中添加早期语句.
似乎这样的东西必须存在,但到目前为止我还没有找到它.
编辑:我的用例的更多细节
我通常在Spyder中使用常规Python控制台.IPython似乎是一件好事,但(至少对于我目前使用的版本,2.2.5)一些普通的控制台功能在IPython(内省,自动完成)中不能很好地工作.通常,我的代码生成matplotlib数字.在调试模式下,那些无法更新(据我所知),这就是为什么我需要完全脱离脚本,而不是解释器).调试器的另一个限制是我无法在其中执行循环:您可以将循环的代码复制/粘贴到常规控制台并让它执行,但这在调试器中不起作用(至少在我的Spyder中)版).
如果您拥有ipython(高度推荐),则可以转到程序中的任意位置并添加以下几行
import IPython
IPython.embed()
Run Code Online (Sandbox Code Playgroud)
一旦程序到达该点,该embed命令将在该上下文中打开一个新的IPython Shell。
我真的很想为那些我不想走完整的pdb路由的事情这么做。
如果您使用的是 Python Shell,只需按CTRL + C即可引发键盘中断。然后您可以检查抛出异常时程序的状态。
x = 0
while True:
x += 1
Run Code Online (Sandbox Code Playgroud)
运行脚本...
Python 2.7.6(默认,2013 年 11 月 10 日,19:24:18)[MSC v.1500 32 位(Intel)] 在 win32 上键入“copyright”、“credits”或“license()”以获取更多信息。>>> ================================== 重新启动 ============== =================
回溯(最近一次调用最后一次):
文件“C:/Python27/test.py”,第 2 行,位于
而真实:
键盘中断
>>> x
15822387
| 归档时间: |
|
| 查看次数: |
2415 次 |
| 最近记录: |