尝试使用 ipdb 调试由 Python+Blessed 制作的终端应用程序会破坏 IPython?

问题描述 投票:0回答:1

我正在使用 Blessed 库来构建一个简单的终端应用程序。

我的应用程序基于以下简单编辑器示例构建:https://github.com/jquast/blessed/blob/master/bin/editor.py

警告:以下步骤会破坏你的IPython,而且我不知道如何修复它!

出于本问题的目的,我将仅使用

editor.py
。让我们进行一些更改以允许调试:

1)

import ipdb

2) 将

ipdb.set_trace()
放在
line 224

立即运行

editor.py
python editor.py
。应该会产生以下错误:

Traceback (most recent call last):
  File "editor.py", line 14, in <module>
    from manager import Manager
  File "/home/abcd/python_scripts/editor.py", line 25, in <module>
    import ipdb
  File "/usr/local/lib/python2.7/dist-packages/ipdb/__init__.py", line 7, in <module>
    from ipdb.__main__ import set_trace, post_mortem, pm, run, runcall, runeval, launch_ipdb_on_exception
  File "/usr/local/lib/python2.7/dist-packages/ipdb/__main__.py", line 47, in <module>
    ipapp.initialize([])
  File "<decorator-gen-110>", line 2, in initialize
  File "/usr/lib/python2.7/dist-packages/IPython/config/application.py", line 92, in catch_config_error
    return method(app, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/IPython/terminal/ipapp.py", line 332, in initialize
    self.init_shell()
  File "/usr/lib/python2.7/dist-packages/IPython/terminal/ipapp.py", line 348, in init_shell
    ipython_dir=self.ipython_dir, user_ns=self.user_ns)
  File "/usr/lib/python2.7/dist-packages/IPython/config/configurable.py", line 354, in instance
    inst = cls(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/IPython/terminal/interactiveshell.py", line 328, in __init__
    **kwargs
  File "/usr/lib/python2.7/dist-packages/IPython/core/interactiveshell.py", line 483, in __init__
    self.init_readline()
  File "/usr/lib/python2.7/dist-packages/IPython/core/interactiveshell.py", line 1843, in init_readline
    self.readline_startup_hook = readline.set_startup_hook
AttributeError: 'module' object has no attribute 'set_startup_hook'

If you suspect this is an IPython bug, please report it at:
    https://github.com/ipython/ipython/issues
or send an email to the mailing list at [email protected]

You can print a more detailed traceback right now with "%tb", or use "%debug"
to interactively debug it.

Extra-detailed tracebacks for bug-reporting purposes can be enabled via:
    c.Application.verbose_crash=True

现在,每当通过执行

ipython
命令来运行 IPython 时,就会产生以下错误:

Traceback (most recent call last):
  File "/usr/bin/ipython", line 5, in <module>
    start_ipython()
  File "/usr/lib/python2.7/dist-packages/IPython/__init__.py", line 120, in start_ipython
    return launch_new_instance(argv=argv, **kwargs)
  File "/usr/lib/python2.7/dist-packages/IPython/config/application.py", line 564, in launch_instance
    app.initialize(argv)
  File "<decorator-gen-110>", line 2, in initialize
  File "/usr/lib/python2.7/dist-packages/IPython/config/application.py", line 92, in catch_config_error
    return method(app, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/IPython/terminal/ipapp.py", line 332, in initialize
    self.init_shell()
  File "/usr/lib/python2.7/dist-packages/IPython/terminal/ipapp.py", line 348, in init_shell
    ipython_dir=self.ipython_dir, user_ns=self.user_ns)
  File "/usr/lib/python2.7/dist-packages/IPython/config/configurable.py", line 354, in instance
    inst = cls(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/IPython/terminal/interactiveshell.py", line 328, in __init__
    **kwargs
  File "/usr/lib/python2.7/dist-packages/IPython/core/interactiveshell.py", line 483, in __init__
    self.init_readline()
  File "/usr/lib/python2.7/dist-packages/IPython/core/interactiveshell.py", line 1843, in init_readline
    self.readline_startup_hook = readline.set_startup_hook
AttributeError: 'module' object has no attribute 'set_startup_hook'

If you suspect this is an IPython bug, please report it at:
    https://github.com/ipython/ipython/issues
or send an email to the mailing list at [email protected]

You can print a more detailed traceback right now with "%tb", or use "%debug"
to interactively debug it.

Extra-detailed tracebacks for bug-reporting purposes can be enabled via:
    c.Application.verbose_crash=True

所以,IPython 似乎在全球范围内都崩溃了。我在 Cygwin 和 Ubuntu 上都遇到了这个问题。

出了什么问题?

python-2.7 ubuntu cygwin ipython ipdb
1个回答
0
投票

今天在

Python 3.9.18
blessed 1.20.0
上转载。

© www.soinside.com 2019 - 2024. All rights reserved.