如何在vscode中设置环境变量进行调试?

Nir*_*nas 7 debugging pythonpath visual-studio-debugging visual-studio-code

我有一个相当大的 python/c++ 程序,运行如下:

  1. 。set_env.sh -选项 A -选项 B
  2. 蟒蛇运行.py

set_env.sh 脚本修改 PYTHONPATH 并执行所有类型的导出以指向正确的 C++ 程序。在终端中运行这两个命令时,效果很好,但是,使用调试器会破坏这一切。

我尝试在 preLaunchTask 中运行“.set_env.sh -option A -option B”,但调试器似乎看不到新的 PYTHONPATH。

如何使调试器运行 set_env 并考虑新的 PYTHONPATH ?

Sau*_*001 6

受到我当前工作领域的启发 - 其中涉及 Python。

这就是我为 Flask 所做的事情。

在此输入图像描述

女士链接

https://code.visualstudio.com/docs/python/debugging

对于任何常规 Python 调试

在此输入图像描述

证据

import os

for key in os.environ.keys():
    print(f"{key}={os.environ.get(key)}")

Run Code Online (Sandbox Code Playgroud)

在 VS Code 中使用包含上述代码片段的文件执行 F5 后: 在此输入图像描述

2月18日更新

收到评论后,我认为 OP 想要在调试 Fask 应用程序之前运行一个脚本。对我有用的步骤如下。

概述

我最终得到了以下文件:

  • 添加 PowerShell 文件dosomething.ps1(我的自定义脚本,我打算在每次调试会话之前启动)
  • 添加task.json(启动 dosomething.ps1)
  • launch.json通过将其与中的任务链接来编辑现有的task.json 在此输入图像描述

文件 dosomething.ps1

Write-Host "Inside do something"
Write-Host "The value of the environment variable TEMP is $env:TEMPcls"
Write-Host "The current path of the script is $PSScriptroot"
Run Code Online (Sandbox Code Playgroud)

文件tasks.json

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "my script task",
            "type": "shell",
            "windows": {
                "command": "pwsh -f dosomething.ps1"
            },
            "problemMatcher": []
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

将 launch.json 与 task.json 链接

在此输入图像描述

按F5后

在此输入图像描述


小智 5

我遇到了类似的问题,可以通过在 launch.JSON 文件的“env”字段中设置环境变量来解决它。这应该存储在.vscode项目根目录中的文件夹中,这里是文档: https: //code.visualstudio.com/docs/python/debugging

我在这里发现了此代码片段中的“env”字段:https ://gist.github.com/slaveofcode/b4c18efc99c16029913cde3fd2dba3ce

但是不确定如何动态配置它-option A -option B。希望这可以帮助 :)