Joa*_*him 33 python debugging workflow exit ipdb
我经常使用ipdb,只是跳转到一段孤立的代码,即很难编写一个使用它的真实脚本.相反,我用模拟编写了一个最小的测试用例并跳转到它.
工作流程的示例:
def func():
...
import ipdb
ipdb.set_trace()
...
def test_case():
...
func()
...
Run Code Online (Sandbox Code Playgroud)
然后,调用
py.test test_file.py -s -k test_case
Run Code Online (Sandbox Code Playgroud)
现在,通常我只检查一个或两个变量,然后想要退出.更改代码并重新执行.
我该如何戒烟?手册说q退出调试器.它(真的)没有.在调试器实际终止之前,您必须退出几次.Ctrl-C和Ctrl-D的相同行为(多次击中Ctrl-D的挫折最终也会退出终端).
是否有一种强制退出的聪明方法?这个工作流程是否合理?这样做的标准方法是什么?
KDN*_*KDN 43
以下对我有用:
import sys
sys.exit()
Run Code Online (Sandbox Code Playgroud)
在较新版本的ipython上,如上文和下文所述,这不起作用.在这种情况下,
import os
os._exit(0)
Run Code Online (Sandbox Code Playgroud)
应该仍然可以做到这一点.
Joa*_*him 40
我把以下内容放在我的手中 .pdbrc
import os
alias kk os.system('kill -9 %d' % os.getpid())
Run Code Online (Sandbox Code Playgroud)
kk 杀死调试器和(触发调试器的过程).
这是最新版本的IPython 5.1.0的问题.您可以使用以下代码检查您的环境:
pip freeze | egrep -i '^i'
Run Code Online (Sandbox Code Playgroud)
它将通过降级到IPython == 5.0.0来解决.
pip install ipython==5.0.0
Run Code Online (Sandbox Code Playgroud)
这对我行得通.
| 归档时间: |
|
| 查看次数: |
11964 次 |
| 最近记录: |