python VSCode:根据启动/调试状态以不同方式运行代码的建议方法

python VSCode: suggested way to run code differently based on launch / debug state

提问人:ljwobker 提问时间:11/10/2023 更新时间:11/10/2023 访问量:41

问:

我有一些 python 代码可以迭代大量文件,并且我编写了一个简单的多线程池,这大大加快了它的速度。(该应用程序并不复杂,没有并发或锁定问题,因为每个输入文件都是 1:1 映射到输出文件,并且这些线程之间没有共享数据结构......

但是,当我调试(在 VSCode 中)时,将其作为单个线程运行对我来说要容易得多,因此我在函数调用中添加了一个变量,允许我强制它在没有线程的情况下运行。这解决了问题,但手动且笨重。我至少想过几种方法可以半自动化,但对这些东西知之甚少(显然),我想我会征求建议。

  1. 我可以设置一个环境变量,将其拉入脚本,然后根据该变量选择单线程代码与多线程代码。
  2. 我可以向选择单线程/多线程模式的现有解析器添加一个参数。

如果其中任何一个存在,我大概可以修改调试器的节,并让它在调试器中启动代码之前设置这些参数或变量。launch.json

但是,这部分我感到困惑......Ctrl-F5 “运行程序” 快捷方式是否始终与在调试器中启动程序的 “F5” 快捷方式完全相同?

当我知道(或至少认为)代码会运行时,我经常使用 Ctrl-F5,而当我认为它不会运行时,我会使用 F5。有没有一些合理的方法可以让 Ctrl-F5 做一些与 F5 “略有不同”的事情?

我刚才描述的也完全有可能是一个非常糟糕的主意,原因对我来说并不明显,和/或在这件事上有更优雅和我不为人知的智慧...... ;-)

python visual-studio-code vscode-debugger

评论


答:

0赞 JialeDu 11/10/2023 #1

Ctrl-F5 “运行程序” 快捷方式是否始终与在调试器中启动程序的 “F5” 快捷方式完全相同?

两者都使用调试器来执行代码,并且都将使用 launch.json 中的配置。不同之处在于 F5 将在断点处停止,而 Ctrl+F5 不会。

enter image description here

https://code.visualstudio.com/Docs/editor/debugging#_run-mode

如果要直接运行脚本:

enter image description here

评论

0赞 starball 11/10/2023
这本质上是 stackoverflow.com/a/77458146/11107541 的复制品......