2011-11-03 92 views
0

我正在使用pydev插件来调试远程应用程序。有没有办法修改pydevd_file_utils.PATHS_FROM_ECLIPSE_TO_PYTHON值而不必修改该文件?

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

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

你知道一些方法来修改这个值而不改变文件吗?

谢谢!

回答

0

目前,路径转换可以被指定的唯一方法是编辑该文件(即:目前没有UI)。

0

不幸的是没有好的办法做到这一点。 作为一种解决方法,我通过在源文件的开始处添加以下代码来显式替换函数NormFileToServer。

def SrcPathMapping(file): 
    eclipse_src_path = 'C:\\tmp\\workspace\\test\\Scripts\\' 
    server_src_path = '/home/tester/test/Scripts/' 
    return file.replace(eclipse_src_path, server_src_path) 

import pysrc.pydevd as pydevd 
pydevd.NormFileToServer = SrcPathMapping 

当所有源文件都位于一个目录中时,这种简单映射就足够了。为了正确执行映射函数,请检查pydevd_file_utils中的NormFileToServer。

3

实际上,自2016年1月12日起,您可以在Fabio Zadroznymerged this PR之后执行此操作。

import pydevd 
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) 
pydevd.settrace() 

你也可以在Eclipse中(从5.5的PyDev作品),打开菜单中全局设置这些路径映射Window > Preferences选择PyDev > Debug > Source Locator

2

你可以做,通过设置这样一个新的环境变量:

PATHS_FROM_ECLIPSE_TO_PYTHON='[["client_src_fullpath", "remote_src_fullpath"]]' 

在linux下简单的命令行启动程序之前运行,或设置为一个全局变量。

在windows中,您需要将其设置为全局系统变量。

变量名:PATHS_FROM_ECLIPSE_TO_PYTHON

变量值:[ “client_src_path”, “remote_src_path”]]

(我知道这是一个很古老的问题,但没有的答案已更新至当前代码)

相关问题