树莓派中使用matplotlib出错 TypeError: constructor returned NULL
File "/usr/local/lib/python2.7/dist-packages/matplotlib/pyplot.py", line 115, in <module>
_backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup()
File "/usr/local/lib/python2.7/dist-packages/matplotlib/backends/__init__.py", line 32, in pylab_setup
globals(),locals(),[backend_name],0)
File "/usr/local/lib/python2.7/dist-packages/matplotlib/backends/backend_gtk3agg.py", line 11, in <module>
from . import backend_gtk3
File "/usr/local/lib/python2.7/dist-packages/matplotlib/backends/backend_gtk3.py", line 54, in <module>
cursors.MOVE : Gdk.Cursor.new(Gdk.CursorType.FLEUR),
TypeError: constructor returned NULL
上面的代码是在树莓派上运行出错的,而在本地的ubuntu上正常运行没问题。
后面查了下资料,原因是我用了ssh登录到树莓派,所以X11的模块没有被正常加载。
按照以下方法就可以解决问题了:
在代码中添加以下这一句:
matplotlib.use("Pdf")
而且这一句要在import matplotlib.pyplot as plt这句前面添加。
OK。