You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VSCode中如何通过Python代码判断脚本是F5调试启动还是Ctrl+F5无调试启动?

VSCode中如何通过Python代码判断脚本是F5调试启动还是Ctrl+F5无调试启动?

这个问题我之前也踩过坑,手动加标记确实容易忘,分享两个亲测有效的自动判断方法:

  • 方法一:检查VSCode调试专属环境变量
    VSCode的Python调试用的是debugpy后端,当你用F5启动调试时,会自动给进程注入DEBUGPY_LAUNCHER_PORT这个环境变量,而Ctrl+F5无调试启动时不会有这个变量。代码实现很简单:
import os

def is_vscode_debugging():
    return "DEBUGPY_LAUNCHER_PORT" in os.environ

这个方法针对性强,只对VSCode的调试场景生效,不会和其他调试工具混淆,推荐日常用这个。

  • 方法二:通用调试模式判断(适用于所有Python调试器)
    Python的调试器运行时会设置追踪函数,通过sys.gettrace()可以判断是否处于调试状态——调试时返回值不为None,正常运行时是None:
import sys

def is_in_debug_mode():
    return sys.gettrace() is not None

这个方法通用性好,不止VSCode,用其他调试器(比如PyCharm的调试)也能判断,但如果你的脚本自己手动调用过sys.settrace(),这个判断可能会失效,不过这种情况很少见。

最后给个实际使用的例子:

if is_vscode_debugging():
    print("当前是F5调试启动,开始执行清理操作...")
    # 这里放你的清理逻辑,比如删除旧的 artefacts 文件
else:
    print("当前是Ctrl+F5无调试启动,跳过清理步骤~")

备注:内容来源于stack exchange,提问作者Alb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 16:59:33