无法导入软件包:InputHookManager

时间:2019-10-02 14:17:33

标签: python python-3.x pycharm

我现在已经花费了最后一个小时左右的时间来尝试解决此问题,但失败了。我已经阅读了几个相关问题,例如this,以及GitHub问题,例如this,但找不到如何最好地解决此问题的方法。

导致错误的步骤

  1. import matplotlib.pyplot as plt

错误消息:

  

AttributeError:“ InputHookManager”对象没有属性“ _stdin_file”

编辑

  1. 如下所示导入会引发相同的错误(请在下面查看我的系统的详细信息和失败的尝试):
from matplotlib import pyplot as plt

  1. 它在终端机上运行

尝试失败

然后我打开了定义InputHookManager的文件,并注意到它与ipythonpydev有关,因此我重新安装了ipython,但并没有解决问题。

我也尝试重新安装matplotlib无济于事。 seaborn可能会发生相同的错误,大概是因为他们俩都需要使用gtk3。

有关系统的更多详细信息

python 3.6
pycharm community 2019.2.1
Ubuntu 18.04.3
matplotlib 3.1.1

5 个答案:

答案 0 :(得分:3)

如果IPython无效,请尝试以下操作。 PyCharm似乎对Linux中的交互模式不满意。

import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt

答案 1 :(得分:1)

尝试这个对我有用的东西

from matplotlib import pyplot as plt

答案 2 :(得分:1)

我有完全相同的问题。我在使用PyCharm 2020.2的Ubuntu 18.04上。看看:"UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure." when plotting figure with pyplot on Pycharm

sudo apt-get install python3-tk 解决了问题

20200902更新:不幸的是,我再次看到此错误。这似乎可以解决:

import matplotlib 
matplotlib.use('TkAgg') 
import matplotlib.pyplot as plt

plt.show()现在可以显示图了

答案 3 :(得分:0)

在浪费了大量时间并尝试了不同的IDE之后,我终于如下解决了该问题:

假设:

  1. 您正在使用Linux发行版(我正在使用Ubuntu 18.04.3)

现在使用默认的ipython卸载pip,如下所示:

sudo python -m pip uninstall ipython

如果ipython不存在(好),它将引发错误。

现在,安装ipython

sudo python -m pip install ipython

我的理解是PyCharm以某种方式使用了默认的matplotlib(python 2.7)而不是项目特定的解释程序包(此处是python 3.6的matplotlib)。因此,您可以通过解决该冲突来解决此问题。

答案 4 :(得分:0)

我遇到了完全相同的问题,唯一对我有用的解决方案是安装 PyQt5 pip3 install PyQt5,安装后,它再次发挥作用。