matplotlib在qt4agg后端使用pyplot.show()时无法打开绘图,找不到sip
我有一个跟这个问题很相似的问题:matplotlib虽然调用了pyplot.show(),但我的图形不显示
我使用的是:
Ubuntu 12.04;
Python 3.4.1;
Pycharm 3.4.1
所以,我在pyCharm中用3.4.1的解释器运行了以下代码,但图形没有出现:
import matplotlib.pyplot as p
p.plot(range(20), range(20))
p.show()
然后我想可能是pyCharm的问题,于是我在终端里试了一下。但是,图形也没有出现。
不过,由于Ubuntu自带Python 2.7,我在终端和pyCharm中都试了一下,图形就出现了。
我发现matplotlibrc文件中的后端设置需要更改。我在网上查了一下,发现应该使用qt4agg后端。更改后,我尝试导入matplotlib.pyplot,结果出现了以下内容:
import matplotlib.pyplot as p
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "/usr/local/lib/python3.4/dist-packages/matplotlib/pyplot.py", line 98, in <module>
_backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup()
File "/usr/local/lib/python3.4/dist-packages/matplotlib/backends/__init__.py", line 28, in pylab_setup
globals(),locals(),[backend_name],0)
File "/usr/local/lib/python3.4/dist-packages/matplotlib/backends/backend_qt4agg.py", line 13, in <module>
from .backend_qt4 import QtCore, QtGui, FigureManagerQT, FigureCanvasQT,\
File "/usr/local/lib/python3.4/dist-packages/matplotlib/backends/backend_qt4.py", line 25, in <module>
from .qt4_compat import QtCore, QtGui, _getSaveFileName, __version__
File "/usr/local/lib/python3.4/dist-packages/matplotlib/backends/qt4_compat.py", line 36, in <module>
import sip
ImportError: No module named 'sip'
因此,我使用以下命令安装了sip:
sudo apt-get install python3-sip
但同样的错误又出现了。
我正在试图找出SIP哪里出了问题。不过,我有点困惑,任何帮助都将不胜感激。谢谢
1 个回答
好的,经过很多努力,我终于搞定了。
首先,我电脑里可能有三四个不同的Python版本:默认的2.7,还有3.2、3.4.0和3.4.1。每个版本的matplotlib(一个绘图库)也不一样,大多数都是1.3.1。所以,第一步我把那些没用的Python版本(3.2和3.4)给删掉了。
接下来,我把所有的matplotlib文件夹都删除了。我参考了matplotlib的文档,确定哪些文件夹需要删除才能彻底清除它。(http://matplotlib.org/contents.html)
之后,我从git上克隆了最新的matplotlib版本(http://matplotlib.org/faq/installing_faq.html#install-from-git),然后安装了它。这个时候,matplotlib的版本是1.4。然后我又试着运行我之前的例子,结果成功了。没有更改任何后端设置。
所以,彻底清除旧版本并安装最新版本就解决了问题。