我正在尝试调试我的 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节点并激活虚拟环境。
最佳 最大
您可以将必要的 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"
}
]
}
然后就可以运行调试器了。