Skip to main content
 首页 » 编程设计

python之有没有办法修改 pydevd_file_utils.PATHS_FROM_ECLIPSE_TO_PYTHON 值而不必修改该文件

2025年05月04日28xxx_UU

我正在使用 pydev 插件调试远程应用程序。

此(远程)应用程序的文件结构与运行我的 Eclipse 的结构不同。当我从 Eclipse IDE 设置断点时,这会导致出现问题,因为 pydev 调试器服务器无法将文件的绝对路径与远程应用程序上的文件匹配,因此断点未命中。

我不想硬编码 pydevd_file_utils.PATHS_FROM_ECLIPSE_TO_PYTHON 常量以启用文件路径转换。

你知道在不改变文件的情况下修改这个值的方法吗?

谢谢!

请您参考如下方法:

设置路径转换有两种方式:

  1. 使用诸如 PATHS_FROM_ECLIPSE_TO_PYTHON 之类的环境变量来映射从客户端到服务器端的路径。

该值是一个带有 list(list(str, str)) 的 json 字符串,这样:

PATHS_FROM_ECLIPSE_TO_PYTHON=[["c:/local/path", "/path/in/server"]]

请注意,您可以在任何您喜欢的地方设置环境变量(例如 Python 解释器 首选项页面中的 Environment 选项卡,在操作系统本身中,在启动配置等中)。

  1. 使用 pydevd API 在运行时从 python 进程设置跟踪:
from pydevd_file_utils import setup_client_server_paths 
 
MY_PATHS_FROM_ECLIPSE_TO_PYTHON = [ 
    ('/home/user/local-project', '/remote/path/to/project'), 
] 
setup_client_server_paths(MY_PATHS_FROM_ECLIPSE_TO_PYTHON) 
 
# At this point we could connect to the remote debugger client with: 
import pydevd 
pydevd.settrace("10.0.0.12") 

参见:https://www.pydev.org/manual_adv_remote_debugger.html有关远程调试的更多信息。

注意:在 Window > Preferences 选择 PyDev > Debug > Source Locator 中设置的映射并没有真正映射到那个环境变量,也没有实际的调试器映射(这是一个单独的翻译,仅翻译在本地 Eclipse 上找到的路径,并没有真正传递给调试器以远程命中断点)。