如何让VSCode单步执行脚本内Python语句(Mac系统)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何让VSCode单步执行脚本内Python语句(Mac系统)相关的知识,希望对你有一定的参考价值。
参考技术A 在写脚本的阶段,需要一步一步运行、检查、调试。用惯了Spyder和RStudio之后,更加习惯了快捷键单步执行语句。当按下某组快捷键时,希望编辑器应该做两个动作:1.运行这行命令;2. 光标自动跳到下一行。最终在这里找到了解决方案: https://stackoverflow.com/questions/58404225/vs-code-move-to-next-line-on-run-ctrl-enter
按步骤说一下:
4)把这段话放keybindings.json里面 :
"key": "cmd+e" 是我自定义的快捷键,自己改自己想用的。
设置好之后重新打开VSCode,打开一个 .py 脚本,就可以按快捷键企图单步运行了。第一次按会唤醒交互窗口,之后就两个窗口一左一右,运行和调试起来很方便!
Python PDB 与命令输出不一致 - 下一条语句未输出
【中文标题】Python PDB 与命令输出不一致 - 下一条语句未输出【英文标题】:Python PDB inconsistency with command outputs - next statement not outputting 【发布时间】:2016-05-11 16:29:36 【问题描述】:我正在尝试单步执行我一年多前编写的一些代码的 python 脚本。我记得的方式是,当您编写 pdb.set_trace() 行时,程序将在该点停止执行并打印将要执行的下一行。输入 'n' 或 's' 将使执行前进一行(并且可能步入一个函数,与我的问题不太相关)并打印下一行以再次执行。
现在,我有一个程序“example1.py”,它没有打印下一条要执行的语句。我只是得到如下输出
./example1.py
> /home/some/example1.py(44)create()
(Pdb) s
> /home/some/example1.py(45)create()
(Pdb) s
--Call--
> /home/some/example1.py(90)parse()
但是当我用一个不同的 python 程序“example2.py”尝试同样的事情时,我最近编写的一个我得到了我期望的输出(下一个要执行的语句。)
> /home/some/example2.py(86)random_update()
-> DATE_LIMIT=1
(Pdb) n
> /home/some/example2.py(87)random_update()
-> FILE_LIMIT=120
(Pdb) n
> /home/some/example2.py(89)random_update()
-> n_dates=0
我不知道这可能是什么原因。 import 语句会干扰 pdb 的执行吗?
更新: 所以我在切换到我的主目录之外的目录之前设置了我的跟踪断点。当我这样做时,我得到了我期望的输出。我注意到该目录的组所有者是 root,所以我将其更改为我的用户。这并没有解决我的问题,但现在我知道它与程序执行位置有关。
【问题讨论】:
【参考方案1】:我想通了。如果我在将当前目录更改为程序所在目录的行之前设置我的跟踪,我得到了我期望的输出。在此目录更改后设置跟踪后,我不再获得语句执行输出。
为了解决这个问题,我使用完整路径执行了程序
python /home/name/home/some/example1.py
【讨论】:
以上是关于如何让VSCode单步执行脚本内Python语句(Mac系统)的主要内容,如果未能解决你的问题,请参考以下文章
从 gdbinit 脚本单步执行时如何设置跳过不感兴趣的函数?