【问题标题】:Debugging python programs in emacs在 emacs 中调试 python 程序
【发布时间】:2010-02-24 09:04:45
【问题描述】:

如何在emacs中调试python程序?

我用python-mode.el

我得到了类似的参考

import pdb; pdb.set_trace();

但不知道怎么用。

【问题讨论】:

    标签: python debugging emacs pdb


    【解决方案1】:

    键入M-x cd 将目录更改为您要调试的程序的位置。 输入M-x pdb。系统将提示您 Run pdb (like this): pdb。输入程序的名称(例如test.py)。

    (Pdb) 提示符下,输入help 以了解如何使用pdb。

    或者,你可以把

    import pdb 
    pdb.set_trace()
    

    就在您的程序内部(例如test.py)。现在键入M-x shell 以获取shell 提示符。当你运行你的程序时,你会在pdb.set_trace()被执行的地方被转储到pdb

    【讨论】:

    • 使用 pdbtrack(通过 M-x shell)可能是一个更好的解决方案。以这种方式控制目录和环境要容易得多。
    • @matt 与 M-x pdb 您可以在源文件中设置断点,并且光标将在您逐步执行时显示当前执行位置:twistedmatrix.com/documents/current/core/howto/…
    • 图形教程可以在这里找到:sunnyeves.blogspot.com/2011/04/…
    • 如果您没有 pdb 可执行文件,stackoverflow.com/questions/9167614/… 可能会有所帮助,请参阅@sanityinc 的评论:在路径中的任何目录中创建一个 shell 脚本 pdb,其中包含文本:#!/bin/ bash exec python -m pdb "$@"
    • 为什么方法一不适合我。 emacs 抱怨它找不到提供的 .py 文件。
    【解决方案2】:

    对我来说,我需要用

    替换默认的“pdb”
    python -m pdb myscript.py
    

    【讨论】:

      【解决方案3】:

      realgud 包(可从 MELPA 获得)支持 PDB(在无数其他调试器中),并具有 Emac 的 PDB 所没有的许多简洁功能。

      我最喜欢的是快捷键模式。开始调试程序后,您可以直接在源窗口中按nsc 等,而不必在 PDB 缓冲区中键入这些命令。它还支持带有功能键(f10f11f5 等)的 Visual-Studio 样式键绑定。

      安装RealGUD后,需要运行M-x load-feature realgud来加载它,可以用M-x realgud:pdb启动pdb

      【讨论】:

      • 我应该补充一点,我有一点利益冲突。我发现这个包非常整洁,所以我开始对它进行破解,现在成为了共同维护者。
      • realgud 看起来棒极了!我想知道将输入 realgud/emacs 与现有的调试输入流程(例如设置跟踪和使用pytest 之类的东西运行测试)集​​成起来会有多简单。这里有什么提示吗?也许这会做我正在寻找的:github.com/realgud/realgud/…
      • realgud 在 emacs-25 中不受支持,尝试安装它会给出“包 emacs-25 不可用”错误消息,不幸的是,直到它得到 emacs-25 的支持,我需要找到一个替代方案用于 emacs-25 的 python 调试器,或者在没有 emacs 集成的情况下继续使用 pdb
      • 你把它弄反了:它需要 emacs-25,而你正试图将它安装在旧的 Emacs 中。 (有关依赖项,请参阅 melpa.org/#/realgud
      猜你喜欢
      • 2011-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-18
      • 1970-01-01
      相关资源
      最近更新 更多