在Java/ c#中,您可以很容易地逐级检查代码以跟踪可能出错的地方,而IDE使这个过程对用户非常友好。
你能以类似的方式跟踪python代码吗?
在Java/ c#中,您可以很容易地逐级检查代码以跟踪可能出错的地方,而IDE使这个过程对用户非常友好。
你能以类似的方式跟踪python代码吗?
当前回答
PyCharm是一个包含调试器的Python IDE。观看这段YouTube视频,了解如何使用它来逐步执行代码:
PyCharm教程-使用PyCharm调试python代码(在6:34开始调试)
注意:PyCharm是一个商业产品,但该公司确实为学生和教师提供了免费的许可证,以及一个“轻量级”社区版本,它是免费和开源的。
其他回答
使用Python交互式调试器'pdb'
第一步是使Python解释器进入调试模式。
A.从命令行
最直接的方式,从命令行运行,python解释器
$ python -m pdb scriptName.py
> .../pdb_script.py(7)<module>()
-> """
(Pdb)
B.解释器内部
在开发模块的早期版本时,并更迭代地进行实验。
$ python
Python 2.7 (r27:82508, Jul 3 2010, 21:12:11)
[GCC 4.0.1 (Apple Inc. build 5493)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pdb_script
>>> import pdb
>>> pdb.run('pdb_script.MyObj(5).go()')
> <string>(1)<module>()
(Pdb)
C.从你的程序内部
对于大项目和长时间运行的模块,可以从程序内部使用启动调试 导入PDB和set_trace() 像这样:
#!/usr/bin/env python
# encoding: utf-8
#
import pdb
class MyObj(object):
count = 5
def __init__(self):
self.count= 9
def go(self):
for i in range(self.count):
pdb.set_trace()
print i
return
if __name__ == '__main__':
MyObj(5).go()
逐步调试进入更内部
Execute the next statement… with “n” (next) Repeating the last debugging command… with ENTER Quitting it all… with “q” (quit) Printing the value of variables… with “p” (print) a) p a Turning off the (Pdb) prompt… with “c” (continue) Seeing where you are… with “l” (list) Stepping into subroutines… with “s” (step into) Continuing… but just to the end of the current subroutine… with “r” (return) Assign a new value a) !b = "B" Set a breakpoint a) break linenumber b) break functionname c) break filename:linenumber Temporary breakpoint a) tbreak linenumber Conditional breakpoint a) break linenumber, condition
注意:**所有这些命令都应该在**pdb中执行
更深入的了解请参考:-
https://pymotw.com/2/pdb/
https://pythonconquerstheuniverse.wordpress.com/2009/09/10/debugging-in-python/
通过python代码进行编程步进和跟踪也是可能的(而且很简单!)查看sys.settrace()文档了解更多细节。这里也有一个教程让你开始。
如果你有Java/ c#背景,我猜你最好的选择是使用Eclipse和Pydev。这为您提供了一个内置调试器的功能齐全的IDE。我也用django。
VSCode
如果你想使用IDE,这是PyCharm的一个很好的替代方案。
安装VSCode 安装Python扩展,如果还没有安装的话 用Python代码创建一个文件mymodule.py 若要设置断点,请将鼠标悬停在行号上并单击红点,或按F9 按F5开始调试并选择Python文件
它将在断点处停止,你可以做你通常的调试工作,比如检查变量的值,可以在变量选项卡(通常在左边)或单击调试控制台(通常在终端旁边的底部):
这个截图显示了VSCodium。
更多的信息
在VS Code中的Python调试 在VS Code中开始学习Python 在Visual Studio代码中调试
PyCharm是一个包含调试器的Python IDE。观看这段YouTube视频,了解如何使用它来逐步执行代码:
PyCharm教程-使用PyCharm调试python代码(在6:34开始调试)
注意:PyCharm是一个商业产品,但该公司确实为学生和教师提供了免费的许可证,以及一个“轻量级”社区版本,它是免费和开源的。