调试已复制到不同构建文件夹中的 Python 文件

问题描述 投票:0回答:1

我有一个基于 PowerShell 脚本的简单构建过程,我将 /src 中的一些 Python 源文件复制到 /build 文件夹,以及存储在其他外部子文件夹中的一些数据文件和资产。我想针对此构建文件夹(完整路径:/build/demo/quad/quad.py)运行 VS Code 调试器,但针对 /src 中的文件(在 /src/python/quad.txt 中找到的等效文件)标记我的断点。 py)。

我尝试了各种尝试让 VS code 识别这一点,ChatGPT 已将其指示为类似于 JavaScript 源映射(我不是 Web 开发人员),但到目前为止还没有任何乐趣。这可能吗?

我的 VS Code 工作区文件的相关片段:

"launch": {
    "version": "0.2.0",
    "configurations": [
            {
            "name": "QUAD Debugger",
            "type": "debugpy",
            "request": "launch",
            "program": "${workspaceFolder}/build/demo/quad/quad.py",
            "console": "integratedTerminal",
            "cwd": "${workspaceFolder}/build/demo/quad",
            "justMyCode": false,
            "presentation": {
                "reveal": "always",
                "panel": "shared",
                "close": true
            },
            "env": {
                "PYTHONPATH":  ${workspaceFolder}/src/python${pathSeparator}${env:PYTHONPATH}"}
        },
python visual-studio-code debugging
1个回答
0
投票

不幸的是,Python 没有与 JavaScript 的源映射直接等效的东西。

如果您想将断点保留在

/src
目录中, 一种解决方法是直接调试
/src
目录中的代码, 并使用文件观察器自动将更改从
/src
复制到
/build
。 这样,您就可以设置断点并单步执行
/src
目录中的代码, 每当您保存文件时,更新的代码都会复制到
/build

以下是如何在 VS Code 中设置文件观察器的示例:

"files.watcherExclude": {
    "**/.git/objects/**": true,
    "**/.git/subtree-cache/**": true,
    "**/node_modules/*/**": true,
    "**/build/**": false
},
"files.autoSave": "afterDelay",
"files.autoSaveDelay": 1000

此配置将在您停止输入后 1 秒(1000 毫秒)自动保存您的文件, 并且文件观察器不会忽略

/build
目录,因此更改将自动复制到该目录。

© www.soinside.com 2019 - 2024. All rights reserved.