配置两个远程系统之间的路径映射以使断点在PyDev中工作

时间:2018-07-19 21:09:33

标签: python eclipse pydev

几天来,我一直在尝试使PyDev的远程调试功能运行不成功。我的主要问题(目前只有一个)是我不知道如何正确地将远程路径映射到我的本地路径上,反之亦然,以便使断点正常工作。我已经阅读了these instructions,并在此处针对该主题浏览了一些Q / A。我想知道使这些断点正常运行的确切步骤。

在我的情况下,这是一个在远程Debian 9系统上运行的Python应用程序,我想从我的本地Windows 7主机使用Eclipse中的PyDev 6.4.3进行调试。 在这种情况下,主机是什么,目标是什么?我必须在Windows或Linux机器上配置路径映射吗?甚至是两者?

我尝试在Eclipse中的 Preferences / PyDev / Debug / Source Locator 下对其进行配置。我在Windows和Linux上都将它们设置为环境变量 PATHS_FROM_ECLIPSE_TO_PYTHON 。没有任何帮助,在我的Linux机器上,我只收到消息

pydev debugger: warning: trying to add breakpoint to file that does not exist

我没有其他选择了,我真的很想知道这样做的正确方法。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

因此,我终于找到了适合我的设置的配置。总结一下:

  • 我要调试的应用程序在装有pydevd(pip install pydevd)的Linux机器上运行
  • 我的Eclipse + PyDev设置正在Windows 7工作站上运行
  • 调试服务器在Eclipse中运行,并监听其默认端口5678

显然,必须在目标计算机上配置路径映射(托管要调试的应用程序的路径映射,因此在我的情况下,这将是Linux计算机)。这可以通过两种方式(在Linux上)完成:

  1. 将它们直接粘贴到pydevd_file_utils.py中(在我的Linux系统上,它位于 /usr/local/lib/python2.7/dist-packages / 中):

    PATHS_FROM_ECLIPSE_TO_PYTHON = [ ('Remote Path 1', 'Local Path 1'), ('Remote Path 2', 'Local Path 2'), ... ]

  2. 在启动应用程序之前将它们作为环境变量(例如export PATHS_FROM_ECLIPSE_TO_PYTHON='[["Remote Path 1", "Local Path 1"], ["Remote Path 2", "Local Path 2"], ...]')传递

在我的情况下,远程路径将是Windows计算机上的项目路径(例如C:\\Users\\workspace\\project\\),而本地路径将是Linux主机上的项目路径({ {1}})。请注意,我必须在路径上添加反斜杠,因为否则PyDev会将路径转换为类似/home/user/project/的路径,这将导致文件未知。因此,我还不得不在Windows路径中转义反斜杠。

希望这可以帮助遇到像我这样的类似困难的人。