逐行运行python源代码

时间:2011-10-06 23:00:40

标签: python

鉴于Python源代码,是否可以逐行运行代码,就好像你在调试一样?

当谈到函数调用时,我也想“进入”函数。

6 个答案:

答案 0 :(得分:20)

python -m pdb <script.py>将在Python debugger

中运行该脚本

答案 1 :(得分:2)

我建议查看Eclipse和PyDev进行调试。我想有很多选择。

答案 2 :(得分:1)

如果您正在使用PyCharm,则可以更改键盘快捷键设置 - 设置&gt;&gt;键盘地图&gt;&gt;其他&gt;&gt;在控制台中执行选择 如果您已从R迁移,将其更改为Ctrl + Enter将帮助您逐行运行代码。

答案 3 :(得分:1)

您所描述的是调试。所以这里是大多数代码编辑器(如 vs code、virtual studio、PyCharm、PyDev 等)使用的 python 调试器的源代码。看看这个https://github.com/fabioz/PyDev.Debugger

注意这仅用于python代码调试,不适用于其他语言

或者,您必须了解调试器如何工作的更好选择是查看这篇文章 https://opensource.com/article/19/8/debug-python

答案 4 :(得分:0)

看看ipython,你应该可以使用pdb和ipython的组合,比如在ipython中加载pdb来实现你需要的东西。

答案 5 :(得分:0)

对于大多数情况,其他答案中提到的调试工具是您所需要的-但是,如果您真的想逐行跟踪/控制程序,我认为您正在寻找

sys.settrace(tracefunc)-其中tracefunc是一个python函数,将针对一系列不同的事件-“ call”,“ line”,“ return”,“ exception”或“ opcode”进行调用。对于OP,“ line”事件在这里很有趣,它会在执行下一行代码之前立即触发。

示例:

def trace_dispatch(frame, event, arg):
    if event == 'line':
        record_line_execution(frame)

sys.settrace(trace_dispatch)

偶然-我很确定这是调试工具用于work their magic

的机制