matplotlib.pyplot报错ImportError(“Failed to import any qt binding”)和Linux图形界面安装
import matplotlib.pyplot
的时候出现如下报错:
>>> from matplotlib import pyplot
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/observer/anaconda2/lib/python2.7/site-packages/matplotlib/pyplot.py", line 115, in <module>
_backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup()
File "/home/observer/anaconda2/lib/python2.7/site-packages/matplotlib/backends/__init__.py", line 62, in pylab_setup
[backend_name], 0)
File "/home/observer/anaconda2/lib/python2.7/site-packages/matplotlib/backends/backend_qt5agg.py", line 15, in <module>
from .backend_qt5 import (
File "/home/observer/anaconda2/lib/python2.7/site-packages/matplotlib/backends/backend_qt5.py", line 19, in <module>
import matplotlib.backends.qt_editor.figureoptions as figureoptions
File "/home/observer/anaconda2/lib/python2.7/site-packages/matplotlib/backends/qt_editor/figureoptions.py", line 20, in <module>
import matplotlib.backends.qt_editor.formlayout as formlayout
File "/home/observer/anaconda2/lib/python2.7/site-packages/matplotlib/backends/qt_editor/formlayout.py", line 54, in <module>
from matplotlib.backends.qt_compat import QtGui, QtWidgets, QtCore
File "/home/observer/anaconda2/lib/python2.7/site-packages/matplotlib/backends/qt_compat.py", line 158, in <module>
raise ImportError("Failed to import any qt binding")
ImportError: Failed to import any qt binding
如果上网搜索的结果一般是认为没有装PyQt
包,可以用conda install -c anaconda pyqt
来安装,或者用conda install -c anaconda pyqt=5
来指定安装PyQt5
。在python
中使用import PyQt5
确认安装完成。
但是这样未必能解决问题,安装了PyQt5
之后仍然可能有相同报错。另一种可能性是系统未安装图形界面(常见于服务器),可以使用eog
指令来测试,如果显示eog: command not found
则应该是需要安装图形界面,以下内容复制自ShuZhaoCL的博客:
对于CentOS 8
系统,可以使用指令yum groupinstall "Server with GUI" -y
安装图形界面,安装需要root
用户或者sudo
权限,安装比较久。
安装完成之后输入systemctl get-default
查看系统启动模式,输出是multi-user.target
代表命令行终端,graphical.target
代表图形化界面,应该会输出multi-user.target
。
可以用systemctl set-default graphical.target
设置默认启动为图形界面(ctl
是control的意思),同样需要sudo
权限,重启后界面会自动是图形窗口了。同样可以用systemctl set-default multi-user.target
换回命令界面启动。
使用sudo reboot
重启界面即可正常使用eog
和pyplot
。