在 VSCode 中设置 Python 远程调试

Kum*_*mar 5 python visual-studio-code

我将远程(ubuntu 16.04)驱动器安装在本地系统(ubuntu 16.04)上,以便我可以通过在 vscode 中打开源文件来编辑源文件。

另外,在集成终端中,我可以 ssh 到远程系统并使用安装在虚拟环境中的远程 python 解释器运行程序,例如:

$ssh username@remoteip    
$workon remotevirtualenv
(remotevirtualenv)$python source.py
Run Code Online (Sandbox Code Playgroud)

我想启用远程调试,这样如果我运行调试/运行远程文件,安装在本地系统上的 vscode 将使用我的远程 python 解释器。

我浏览了建议使用 ptvsd 扩展的文档(它要求有 2 个源文件副本,一个在本地,另一个在服务器上),但我不确定在这种情况下如何配置它。感谢您的帮助。谢谢。

编辑1: 正如我所说,我已经阅读了文档,但我不清楚如何在这种情况下进行配置。例如文档说

  1. 两台计算机上的源代码中,添加以下行,将 my_secret 替换为适当的密码以验证远程调试,并将 address 替换为适当的 IP 地址(或本地主机)和端口号:
ptvsd.enable_attach("my_secret", address = ('0.0.0.0', 3000))
Run Code Online (Sandbox Code Playgroud)

但我在远程系统上只有一份源文件副本。我刚刚将其安装在本地文件系统上。那么,我应该提供我的本地 IP 地址还是应该是远程系统 IP,以及我应该使用哪个端口号,因为我只有一份源代码副本,因此 ptvsd,它将如何通信。另外,在配置中,我应该使用什么localRoot位置和remoteRoot位置。

 3. {
     "name": "Attach (Remote Debug)",
     "type": "python",
     "request": "attach",
     "localRoot": "${workspaceFolder}",
     "remoteRoot": "${workspaceFolder}",
     "port": 3000,
     "secret": "my_secret",
     "host": "localhost" 
 }
Run Code Online (Sandbox Code Playgroud)

编辑:由于 VSCode 中的远程开发扩展,远程调试现在变得非常容易。

dan*_*_18 2

您需要将远程 IP 地址放入ptvsd.enable_attach("my_secret", address = ('remote_ip_address', 3000))和 中launch.json

{
  "name": "Attach (Remote Debug)",
  "type": "python",
  "request": "attach",
  "localRoot": "${workspaceFolder}",
  "remoteRoot": "/home/user1/scripts/",
  "port": 3000,
  "secret": "my_secret",
  "host": "remote_ip_address" 
}
Run Code Online (Sandbox Code Playgroud)

您还需要将该remoteRoot值更改为远程计算机中脚本所在目录的路径(例如/home/user1/scripts/)。

最后,打开 ssh 连接:ssh -L 3000:localhost:3000,在远程计算机中运行脚本并在本地计算机中附加调试器。