使用vscode调试python脚本之前如何执行shell命令

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

我正在尝试调试我的 python 脚本。问题是:每次我们启动一个新终端时,它都是在“登录节点”上,那里没有可用的 GPU 设备。我们必须“ssh gpu-node-1”才能访问 GPU 并“conda activate virtual”。然后我可以运行“python mypython.py”。

当 vscode 开始调试时,它会在“登录节点”上打开一个新终端。为了访问 GPU 节点,我尝试创建一个“tasks.json”文件,并将其与 launch.json 中的“preLaunchTask”链接,其中在 vscode 开始调试 python 脚本之前执行两个 shell 命令。

但是,我发现tasks.json和launch.json打开两个单独的终端。这意味着tasks.json执行的内容不会影响launch.json打开的终端。

如何在vscode开始调试之前访问gpu节点并激活虚拟环境。

最佳 最大

python shell visual-studio-code debugging vscode-debugger
1个回答
0
投票

您可以将必要的 shell 命令组合成一个命令,并将其配置为在单个终端中运行。

您可以创建一个

tasks.json
来定义包含 SSH 和 conda 激活命令的任务:

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "PrepareGPUNode",
      "type": "shell",
      "command": "ssh gpu-node-1 'source ~/.bashrc && conda activate virtual && exec bash'",
      "problemMatcher": []
    }
  ]
}

然后在您的

"preLaunchTask": "PrepareGPUNode",
中添加
launch.json
以在启动任务之前执行任务,
launch.json
应如下所示:

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Python: Debug",
      "type": "python",
      "request": "launch",
      "program": "${workspaceFolder}/mypython.py",
      "preLaunchTask": "Prepare GPU Node",
      "console": "integratedTerminal"
    }
  ]
}

然后就可以运行调试器了。

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