安装pyside后为matplotlib设置的默认后端不正确

时间:2015-01-27 10:43:48

标签: python matplotlib pyside

我在Ubuntu 14.04上使用pyenv安装了Python 3.4.2版,然后我安装了pyside

$ pip install pyside

然后安装numpymatplotlib

$ pip install numpy
$ pip install matplotlib

如果我现在尝试从matplotlib导入ipython

In [1]: import matplotlib
/home/hakon/.pyenv/versions/3.4.2/lib/python3.4/site-packages/matplotlib/__init__.py:1039: UserWarning: Bad val "pyside" on line #39
    "backend      : pyside
"
    in file "/home/hakon/.pyenv/versions/3.4.2/lib/python3.4/site-packages/matplotlib/mpl-data/matplotlibrc"
    Key backend: Unrecognized backend string "pyside": valid strings are ['emf', 'GTK', 'GTK3Agg', 'nbAgg', 'CocoaAgg', 'GTKAgg', 'pgf', 'agg', 'Qt4Agg', 'pdf', 'ps', 'cairo', 'MacOSX', 'WX', 'WebAgg', 'gdk', 'svg', 'TkAgg', 'GTK3Cairo', 'template', 'Qt5Agg', 'WXAgg', 'GTKCairo']
  (val, error_details, msg))

如果我编辑matplotlib配置文件: /home/hakon/.pyenv/versions/3.4.2/lib/python3.4/site-packages/matplotlib/mpl-data/matplotlibrc:我可以看到它有一条线:

backend      : pyside

如果我将其更改为:

backend      : Qt4Agg
backend.qt4 : PySide 

工作正常..

问题是:为什么matplotlibrc文件首先具有无效的后端(pyside)值?

2 个答案:

答案 0 :(得分:1)

我不知道为什么你安装的matplotlib包中的matplotlibrc中有无意义。您可能想直接向matplotlib的开发人员询问。

但是,可以通过编程方式覆盖这些设置,然后应该独立于任何此类设置。

import matplotlib
matplotlib.use('Qt4Agg')
matplotlib.rcParams['backend.qt4']='PySide'

答案 1 :(得分:0)

<input class="gsinput" value="1" /> <input class="gsinput" value="2" /> <input class="gsinput" value="3" /> <input class="gsinput" value="4" /> <input class="gsinput" value="5" />是每个pyqt5的默认安装版本,因此最好只使用anaconda

matplotlib.use('Qt5Agg')