最近,当使用设置断点时ipdb.set_trace(context=20),我可以看到我第一次输入的命令,按回车键后,下次我在 ipdb 提示符中写入指令或命令时不会显示。当我按回车键时,它会执行它并在前面的行中显示它。
直到最近才发生这种情况。我使用的是 mac,带有 iterm、最新的 ipdb 和 pytest。
编辑 2022-3-29
编辑 2022-3-31
编辑 2022-3-31 (2.0)
我正在使用 freezegun 1.2.1 和 pytest 6.2.5。当我运行此代码时,如果我执行 print 几次,光标就会消失。这是我能想到的最基本的复制测试。
导入ipdb
从 freezegun 导入 freeze_time
@freeze_time(“2022年3月12日”)
def test_prompt_ipdb():
ipdb.set_trace()
test_prompt_ipdb()
我现在相信这是这两个之一的错误,很可能是 freezegun 做了一些奇特的事情。
这看起来不像 ipdb 中的错误(也不是 IPython 中的错误,它也会重现)。问题出在 freezegun 和Prompt-toolkit之间,IPython(以及 ipdb)依赖它们。我希望他们会接受这个 PRprompt_toolkit ,但在此之前,可以通过使用参数添加到忽略列表来解决此行为extend_ignore_list,如下所示:
import ipdb
import freezegun
freezegun.configure(extend_ignore_list=['prompt_toolkit'])
@freezegun.freeze_time("2022-3-12")
def test_prompt_ipdb():
ipdb.set_trace()
test_prompt_ipdb()
Run Code Online (Sandbox Code Playgroud)