在eclipse中远程调试python项目

Posted

技术标签:

【中文标题】在eclipse中远程调试python项目【英文标题】:Remote debugging python project in eclipse 【发布时间】:2017-07-19 06:34:24 【问题描述】:

我想调试一个部署在远程机器上的 python 项目。我可以使用.pem 文件通过终端访问该机器。我从内部 gitlab repo 克隆了相同的项目,并在 eclipse 中导入了相同的项目作为PyDev 项目。

在 Eclipse 中,我看到了对 Java 应用程序进行远程调试的选项(运行 -> 调试配置.. -> 远程 Java 应用程序)。但是,我无法为远程 Python 应用程序找到相同的内容。请指导我该怎么做。

提前致谢。

【问题讨论】:

只需要在你的eclipse中安装Pydev,选择你的python解释器并启动一个pydev服务器,在任何一行中停止应用程序放“settrace()”。 【参考方案1】:

远程调试在pydev中有点麻烦。

Here是官方的操作手册(特别注意步骤3-4和注1)。

由于您将在与您的 Eclipse 相同的机器上运行调试服务器,您可能需要类似 ngrok 的东西来公开调试服务器端口(并能够从您要调试的应用程序连接到它)。

【讨论】:

【参考方案2】:

很久以前我使用 rpdb。 https://pypi.python.org/pypi/rpdb 这个效果很好。

【讨论】:

【参考方案3】:

它不是用于 Eclipse,但我可以推荐的最好的远程调试器(和一般调试器)是 pudb,它基本上是带有控制台 UI 的 pdb。

在你的情况下,你需要在运行脚本环境中安装pudb

pip install pudb

然后,在脚本本身中,输入:

from pudb.remote import set_trace

set_trace(term_size=(80, 24))

当你的脚本到达这一点时,脚本会打印出类似这样的内容并挂起:

pudb:6899: Please telnet into 127.0.0.1 6899.
pudb:6899: Waiting for client...

然后您需要做的只是 ssh 进入远程系统并使用 telnet:

ssh remote@machine
telnet 127.0.0.1 6899

【讨论】:

以上是关于在eclipse中远程调试python项目的主要内容,如果未能解决你的问题,请参考以下文章

不清楚远程调试使用哪个 Python 版本(Eclipse Pydev)

Eclipse远程调试(远程服务器端监听)

使用 Eclipse 通过 SSH 在远程服务器上构建和调试项目

windows下面的java项目打成jar放到XShell终端上面进行远程调试

Eclipse 调试:远程调试时找不到源

tomcat启动debug模式,使用eclipse远程调试