如何在Visual Studio代码的launch.json中调试Python模块

vxqlmq5t  于 2023-02-21  发布在  Python
关注(0)|答案(6)|浏览(269)

我的问题可能看起来很简单,但是,我有一个模块,我在终端启动像这样:

python -m my_module.my_file

如何在Visual Studio代码中对此进行调试?
我在我的launch.jsondocumentation)中有这个

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

如果我不设置program选项或如果我将其设置为"",我会得到“文件不存在”错误。
我该怎么补救呢?

sqxo8psd

sqxo8psd1#

实际上,我在编辑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已经没有用了。

slwdgvem

slwdgvem2#

在这样的终端中: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"
            ]
        }
    ],
}
dojqjjoe

dojqjjoe3#

dzada的回答帮了我很大的忙,为了补充一点,可以使用Visual Studio Code变量使其通用于调试模块中的任何文件。

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

可能你也想这么做。

im9ewurl

im9ewurl4#

@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"
    }
]
ldioqlga

ldioqlga5#

经过一番搜索,我发现通过使用Command Variable扩展,配置可以通用于任何模块。假设您的工作区文件夹是包含包的文件夹,那么下面的配置将适用于任何模块:

{
    "name": "Python: Module",
    "type": "python",
    "request": "launch",
    "justMyCode": true,
    "module": "${command:extension.commandvariable.file.relativeFileDotsNoExtension}",
    "cwd":"${workspaceFolder}"
}
lrpiutwd

lrpiutwd6#

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

相关问题