【问题标题】:Ipython has no attribute get_ipython() on debug mode onlyIpython 仅在调试模式下没有属性 get_ipython()
【发布时间】:2021-06-09 09:48:33
【问题描述】:

我在运行调试器时遇到了 pycharm 问题: "AttributeError: module 'IPython' has no attribute 'get_ipython'"

问题是我不知道 IPython 是什么,我没有使用它,当我点击错误日志中的第一个链接时,我到达一个甚至不是我的文件。

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

这是完整的跟踪:

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

感谢您的帮助

【问题讨论】:

  • 那个bug太烦人了,那里也需要帮助......
  • 重新制作我的 conda 环境,错误消失了.. 嗯..

标签: matplotlib pycharm ipython


【解决方案1】:

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

我使用 venv 环境,所以我只是更改了引发错误的文件/代码。

转到 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

在没有调试器的情况下运行时,代码也是如此,所以我认为没关系。此更改后我不再收到错误消息。

【讨论】:

  • 听起来不错,我会尽快测试它,谢谢!
【解决方案2】:

所以,我终于解决了。

我验证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^^。

非常感谢

【讨论】:

    猜你喜欢
    • 2021-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-23
    • 2012-07-09
    • 1970-01-01
    相关资源
    最近更新 更多