Iva*_*van 6 python eclipse debugging pydev python-3.x
我使用 Linux Eclipse (pydev) 作为 IDE 来开发由用 C++ 编写的应用程序启动的 python 脚本。我可以在 IDE 中毫无问题地调试 python 脚本,但环境不是真实的(C++ 程序通过 stdin/stdout 发送和接收消息,这是一个复杂的通信通道,我无法完全重现手动编写消息) .
到目前为止,我一直在使用日志消息进行调试(穷人的调试),但它变得太复杂了。当我在 PHP 中做类似的事情时,我可以让 xdebug 监听并在 Netbeans 中添加断点。非常整洁和容易。是否可以在 Python 3.X(使用 Eclipse 或其他 IDE)中执行类似的操作?
注意:我知道有 Pydev / Attach to Process 功能,但它不起作用。总是无法连接。
注意 2:Python 3.7 中还有一个内置的“断点()”,但它链接到调试器,如果也失败,IDE 永远不会获得控制权。
经过一番研究,这是我发现的最佳选择。在没有提供任何其他解决方案的情况下,我发布它以防万一有人遇到同样的问题。
Python 有一个集成的调试器:pdb。它作为一个模块工作,如果您没有窗口控件(即启动脚本),则不允许使用它。
为了解决这个问题,一些编码人员创建了在 pdb 上添加一层的模块。我已经尝试过一些,最简单且仍然视觉上有趣的是rpudb(但也看看这个)。
要安装它:
pip3 install https://github.com/msbrogli/rpudb/archive/master.zip
Run Code Online (Sandbox Code Playgroud)
(如果您使用pip3 install rpudb命令安装它,它将安装仅对 python 2 有效的旧版本)
然后,您只需添加导入和函数调用即可使用它:
import rpudb
.....
rpudb.set_trace('127.0.0.1', 4444)
.....
Run Code Online (Sandbox Code Playgroud)
启动程序,它将在set_trace调用中停止。要调试它(并继续),请打开终端并启动 telnet,如下所示:
telnet 127.0.0.1 4444
Run Code Online (Sandbox Code Playgroud)
您面前将有一个可视化调试器,其优点是您不仅可以调试本地程序,还可以调试远程程序(只需更改IP)。
| 归档时间: |
|
| 查看次数: |
321 次 |
| 最近记录: |