Ipython 仅在调试模式下没有属性 get_ipython()

Ipython has no attribute get_ipython() on debug mode only

我在 pycharm 调试器 运行 时遇到问题: “AttributeError:模块 'IPython' 没有属性 'get_ipython'”

问题是我不知道 IPython 是什么,我没有使用它,当我在错误日志中的第一个 link 上 clink 时,我收到了一个甚至不是我的文件。

此外,如果我 运行 我的代码没有调试器,则不会出现此错误。

这是完整的跟踪:

这看起来像是来自 matplotlip,但对我没有真正帮助。

感谢您的帮助

我也对这个错误感到非常恼火,所以我尝试了一些东西并找到了解决方法(虽然不干净......)。

我在 venv 环境中工作,所以我只是更改了引发错误的 file/code。

前往 backend_bases.py。对我来说是:\venv\Lib\site-packages\matplotlib\backend_bases.py。或者只需单击最后一个堆栈跟踪。

在第 1744 行中,您可以找到以下代码:

if sys.modules.get("IPython") is None:
    return

更改它并添加一个 else: return 语句。

if sys.modules.get("IPython") is None:
    return
else:
    return

当 运行 没有调试器时,代码执行相同的操作,所以我认为没关系。通过此更改,我不再收到错误消息。

所以,我终于解决了。

我对Andrej的回答有效,因为他的方法很好,直接修改了venv中的matplotlib文件,但是我的文件和他的有点不一样。

在我的文件中,第 1713 行附近的代码如下所示。

import IPython
ip = IPython.get_ipython()
if not ip:
    return

我只是用这个替换它:

import IPython
if hasattr(IPython, "get_ipython"):
    ip = IPython.get_ipython()
else:
    return
if not ip:
    return

在调用之前确保函数存在。

终于这么简单了,我都不敢自己编辑我的venv了^^。

非常感谢