我现在已经花费了最后一个小时左右的时间来尝试解决此问题,但失败了。我已经阅读了几个相关问题,例如this,以及GitHub问题,例如this,但找不到如何最好地解决此问题的方法。
导致错误的步骤
import matplotlib.pyplot as plt
错误消息:
AttributeError:“ InputHookManager”对象没有属性“ _stdin_file”
编辑
from matplotlib import pyplot as plt
尝试失败
然后我打开了定义InputHookManager的文件,并注意到它与ipython
和pydev
有关,因此我重新安装了ipython
,但并没有解决问题。
我也尝试重新安装matplotlib
无济于事。 seaborn
可能会发生相同的错误,大概是因为他们俩都需要使用gtk3。
有关系统的更多详细信息
python 3.6
pycharm community 2019.2.1
Ubuntu 18.04.3
matplotlib 3.1.1
答案 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之后,我终于如下解决了该问题:
假设:
现在使用默认的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
,安装后,它再次发挥作用。