如何在vscode launch.json中调试python模块

时间:2017-09-07 17:37:25

标签: python visual-studio-code

我的问题可能看似简单但是,我有一个模块,我在这样的终端中启动: bash python -m my_module.my_file

如何在Visual Studio Code中调试它。

我在launch.jsondocumentation

中有这个
"type": "python",
"request": "launch",
"pythonPath": "D:\\ProgramData\\Anaconda3\\envs\\simulec\\python.exe",
"args": [
   "-m",
   "my_module.my_file",
]

如果我没有设置program选项,或者我将其设置为"",我会收到“文件不存在”错误。

有什么想法吗? 提前致谢

5 个答案:

答案 0 :(得分:5)

实际上,我在尝试编辑launch.json时偶然发现了一个非常简单的选项。

"type": "python",
"request": "launch",
"pythonPath": "D:\\ProgramData\\Anaconda3\\envs\\simulec\\python.exe",
"module": "my_module.my_file",

只需在模块键"module": "my_module.my_file"

中指定模块即可

-m不再有用了

答案 1 :(得分:3)

在这样的终端中:python -m xyz abc.z3

(请确保您打开“项目的根文件夹”)。

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "module",
            "type": "python",
            "request": "launch",
            "module": "xyz",
            "args": [
                "abc.z3"
            ]
        }
    ],
}

答案 2 :(得分:2)

@dzada 的回答让我有点困惑,所以我试着重新措辞并添加更多说明。

调试名为 script_file.py 的文件中的模块,该文件存在于名为 packagex 的包中,其结构如下:

Project_Folder
   packagex
      script_file.py

您在 launch.json 文件中的配置应如下所示

    "configurations": [
    {
        "name": "Python: any name like script_file",
        "type": "python",
        "request": "launch",
        "module": "packagex.script_file"
    }
]

答案 3 :(得分:0)

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "module",
            "type": "pythonExperimental",
            "request": "launch",
            "module": "my_package.my_module.${fileBasenameNoExtension}",
        },
    ]
}

答案 4 :(得分:0)

要对dzada's answer进行一些补充,这对我有很大帮助,可以使用Visual Studio Code变量使此通用名称用于调试模块中的任何文件。

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Module",
            "type": "python",
            "request": "launch",
            "module": "my_module.${fileBasenameNoExtension}"
        }
    ]
}

您可能想做什么?