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

VS Code中console_script模块模式的调试配置问题

我遇到过完全一样的问题!VS Code的Python调试器里,module参数只接受单纯的模块名(比如myapp.app),不能带上:do_something这种函数后缀,这就是你报错的核心原因。下面给你两种靠谱的解决方案,按需选择:

方案1:直接通过Python命令调用目标函数(无需安装项目)

这种方式不用先安装你的包,直接在launch.json里配置调用函数的语句,快速实现调试:

打开.vscode/launch.json,添加两个独立的配置项,分别对应你的两个console_scripts:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Debug script (do_something)",
            "type": "python",
            "request": "launch",
            "program": "${command:python.interpreterPath}",
            "args": [
                "-c",
                "from myapp.app import do_something; do_something()"
            ],
            "console": "integratedTerminal",
            "justMyCode": true
        },
        {
            "name": "Debug script2 (do_something2)",
            "type": "python",
            "request": "launch",
            "program": "${command:python.interpreterPath}",
            "args": [
                "-c",
                "from myapp.app import do_something2; do_something2()"
            ],
            "console": "integratedTerminal",
            "justMyCode": true
        }
    ]
}

几个关键点说明:

  • ${command:python.interpreterPath}会自动使用你当前选中的Python解释器,不用硬编码路径
  • -c参数让Python执行后面的字符串代码,直接导入并调用目标函数
  • 配置完成后,在VS Code的调试面板里选择对应配置,就能直接进入do_something或do_something2的断点

方案2:调试真实的console_scripts命令(更贴近生产环境)

如果你想完全模拟实际使用时的运行流程(毕竟用户是通过script/script2命令调用的),可以先以开发模式安装项目,再调试生成的命令:

  1. 先在终端执行开发模式安装命令:
pip install -e .

这个命令会把你的包安装到Python环境,且代码修改后实时生效,同时会在环境的bin(Linux/macOS)或Scripts(Windows)目录下生成script和script2可执行文件。

  1. 然后在launch.json里配置调试这两个命令:
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Debug console script",
            "type": "python",
            "request": "launch",
            "program": "${env:VIRTUAL_ENV}/bin/script", // Windows系统替换为${env:VIRTUAL_ENV}/Scripts/script.exe
            "console": "integratedTerminal",
            "justMyCode": true
        },
        {
            "name": "Debug console script2",
            "type": "python",
            "request": "launch",
            "program": "${env:VIRTUAL_ENV}/bin/script2", // Windows系统替换为${env:VIRTUAL_ENV}/Scripts/script2.exe
            "console": "integratedTerminal",
            "justMyCode": true
        }
    ]
}

如果你的虚拟环境不是用VIRTUAL_ENV管理的(比如conda环境),可以用终端命令which script(Linux/macOS)或where script(Windows)找到命令的绝对路径,直接替换到program字段即可。

这种方式的优势是完全复现生产环境的调用逻辑,适合调试和入口点相关的复杂问题。

不管用哪种方案,记得在do_something和do_something2函数里打上断点,调试时就能直接进入代码执行流程了。

内容的提问来源于stack exchange,提问作者jwillis0720

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 16:32:49