vim和python脚本调试

var*_*nie 33 python vim

有没有办法调试python脚本而不是在*nix系统中保留vim(执行脚本,设置断点,在监视列表中显示变量等)?

Pie*_*tte 36

使用pdb:

import pdb
def main():
  list = [1,2,3]
  pdb.set_trace()
  list = [2,3,4]

if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

现在运行使用:!python %,你将点击你的断点,并能够像在gdb中一样交互式调试.

  • theres也是ipdb,这有点像ipython,所以更加用户友好. (2认同)

ash*_*him 7

试试pyclewn.它允许使用vim作为pdb的前端.您可以创建/删除断点,控制调试过程的流程,查看变量的值.全部来自vim!

  • 据说不再开发了。 (2认同)

ale*_*he8 6

也可以尝试https://pypi.python.org/pypi/pudb-类似于pdb,但更高级。包含代码高亮显示,堆栈显示,显示可用值等。不仅vim解决方案而且对我来说都很完美。

三个步骤:

安装:

pip安装pudb

将set_trace粘贴到代码中

从pudb import set_trace; set_trace()

运行你的代码


San*_*mar 5

从 Python 3.7 开始,您可以在breakpoint()不导入任何内容的情况下使用builtin。

内置breakpoint()调用sys.breakpointhook()。默认情况下,后者导入pdb然后调用pdb.set_trace()

Pierre-Antoineanswer继承代码,代码如下所示:

def main():
  list = [1,2,3]
  breakpoint()
  list = [2,3,4]

if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

来源:https : //docs.python.org/3/whatsnew/3.7.html#pep-553-built-in-breakpoint