在 VSCode 中设置 Python 远程调试

2023-12-14

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

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

$ssh username@remoteip    
$workon remotevirtualenv
(remotevirtualenv)$python source.py

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

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

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

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

但我只有一份源文件副本,即在远程系统上。我刚刚将其安装在本地文件系统上。那么,我应该提供我的本地 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" 
 }

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


您需要将远程 IP 地址放入两者中ptvsd.enable_attach("my_secret", address = ('remote_ip_address', 3000)) and in 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" 
}

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 VSCode 中设置 Python 远程调试 的相关文章

随机推荐

  • 如何将wav文件中的数据读取到数组

    我需要将 wav 文件的所有样本放入一个数组 或者两个 如果您需要这样做以保持立体声 以便我可以对它们进行一些修改 我想知道这是否容易完成 最好没有外部库 我没有阅读声音文件的经验 所以我对这个主题了解不多 这段代码应该可以解决问题 它将波
  • 未通过 Smart Lock API 在应用程序中检索到关联网站的密码

    I ve 关联我的 https 网站和应用程序以共享存储的凭据并收到了该协会已上线的确认信息 但是当我致电CredentialsApi request 方法在我的应用程序中 我无法从我的网站检索使用 Chrome 密码管理器保存的任何凭据
  • 处理我的 Android 应用程序中的文本视图链接单击

    我目前正在 TextView 中渲染 HTML 输入 如下所示 tv setText Html fromHtml a href test test a 显示的 HTML 是通过外部资源提供给我的 因此我无法随意更改内容 但我当然可以对 HT
  • 片段中的函数使模拟器崩溃

    当我将函数放入其中时发生错误onCreateView in menu1 Fragment java 提前抱歉 因为我也会放置我的日志 所以这可能会使我的帖子有点大 所以我会告诉你布局 我是新来的 很抱歉有很多问题 如果我不添加该函数 代码就
  • 记录有共同的基类吗?

    在 NET 类型系统中 所有引用类型都派生自System Object 所有值类型来自System ValueType我认为 是否也有一个共同的基类 record类型源自 如果没有 为什么不呢 是否还有一个所有记录类型派生自的公共基类 不
  • 投射给孩子

    我实际上想做的是投射一个构造的moneypunct to the punct facet in 这个问题无需编写复制构造函数 如下所示这个答案 但为了写一个最小 完整 可验证的示例假设我有这两个课程 class Parent public
  • Android Admob 空间不足,无法展示广告

    使用中提供的代码AdMob 网站 这是我的 xml
  • php 字符串像 python 的“””“””一样转义?

    你好 我想知道是否有一种简单的方法来转义 php 中的字符串 在Python中我使用 并且它们之间的所有内容都被转义 所以当使用特殊字符时它会被忽略 我有一些文本需要回显 手动转义所有内容都需要很长时间 php有内置类似的功能吗 thank
  • 尝试访问 Android 中的 SQLite 数据库时,如何修复 SQLiteOpenHelper.getDatabaseLocked 错误?

    我正在尝试从 Sqlite 数据库检索一些数据 但是当我尝试使用 getTaskSent 方法检索数据时 出现以下错误 谁能建议我解决以下错误 E AndroidRuntime 23159 at android database sqlit
  • Django AND .htaccess 重写/重定向,这可能吗?

    是否可以让 Apache htaccess 重写在到达 django 之前生效 我希望能够指定RewriteRules在优先于 django 的 htaccess 文件中 如果没有匹配的内容 则将其分派到 mod wsgi django 我
  • C 中 const 和 volatile 限定符的用法区别?

    我已经回答了问题 C 中 const 指针和 volatile 指针有什么区别 我理解的解释是 const 修饰符意味着此代码不能更改变量的值 但这并不意味着不能通过此代码之外的方式更改该值 然而 易失性表示 此数据可能会被其他人更改 因此
  • 重新启动游戏并重新实例化对象

    介绍 我正在用 C 创建一个小游戏 并想创建一个重新启动游戏的函数 首先我创建对象player 然后我有一个 if 语句来确定何时按下某个键来调用New 方法 My goal 在该方法中 我想重新实例化 Player 类的对象 因此所有变量
  • 将连接字符串中的排序规则属性设置为 SQL Server 2005

    我有一个 ASP Net Web 应用程序 其 web config 中包含 SQL Server 2005 的连接字符串 Data Source ABCSERVER Network Library DBMSSOCN Initial Cat
  • 找不到 Python Visual Studio 代码模块

    已安装 Python 3 7 6 并尝试在 Visual Studio Code 中编写代码 Using import pikepdf 让我犯以下错误ModuleNotFoundError No module named pikepdf 但
  • 如何使 pygame 窗口全屏显示而不隐藏任务栏

    我目前正在学习pygame 我已经设置了一个窗口并将其设置为全屏 import pygame WIN pygame display set mode 0 0 pygame FULLSCREEN pygame display set capt
  • 通过Java客户端连接Azure服务总线

    我正在尝试使用 AMQP 协议从 Java 客户端连接 Azure 服务总线 我按照以下链接中的说明进行操作 http azure microsoft com en us documentation articles service bus
  • Python pygame 需要帮助同时禁用多个按键

    我创建了一个Frogger游戏原型和我不想允许同时按下两个键进行移动 目前在我的事件函数中我有以下内容 for event in pygame event get check for closing window if event type
  • 来自多个源字段的自动映射器条件映射

    我有一个如下所示的源类 public class Source public Field Fields get set public Result Results get set 并有一个目标类 例如 public class Destin
  • numpy中如何计算两个矩阵的外积?

    我有两个矩阵 A 和 B 大小分别为 NxK 和 MxK 我希望计算大小为 NxMxK 的张量 C 使得 C i j k A i k B j k 如何在 numpy 中有效地实现这一点 所有维度都很大 因此循环不是一种选择 使用循环版本中迭
  • 在 VSCode 中设置 Python 远程调试

    我将远程 ubuntu 16 04 驱动器安装在本地系统 ubuntu 16 04 上 以便我可以通过在 vscode 中打开源文件来编辑源文件 另外 在集成终端中 我可以 ssh 到远程系统并使用安装在虚拟环境中的远程 python 解释