在ssh中导入pyplot时,TypeError构造函数返回NULL

MCT*_*MCT 10 python windows ssh matplotlib

matplotlib.pyplot当我使用ssh访问我的本地实验室群集时,我无法导入.

确实,试图import matplotlib.pyplot as plt给我一个错误.我试过import matplotlib as mpl,这很好,所以特别关于导入的东西pyplot在这里是错误的.追溯的最后一行说

File '/usr/lib64/python2.7/site-packages/matplotlib/backends/backend_gtk3.py', line 58, in <module> cursors.MOVE : Gdk.Cursor.new(Gdk.CursorType.FLEUR), TypeError: constructor returned NULL

谁能在这里找出错误?或者,有没有办法可以规避错误并仍然使用这些pyplot工具?

如果它有所作为,我使用的是Windows 8.

mmd*_*ger 17

您无法加载GTK.最有可能的原因是,您无法访问X11服务器而无法绘制窗口(这是GTK所做的).

matplotlib.use("Pdf")导入前尝试pyplot.然后你不需要加载GTK,它不会失败.您仍然可以制作绘图并将其保存为pdf,但无法在屏幕上绘制它们.

或者,您可以尝试转发X11.然后,您可以看到窗口,就像您在主机上一样.使用Linux客户端,可以通过登录来完成ssh -X hostname.使用Windows客户端,可以完成但不是那么顺利.

  • 在这种情况下,我发现`if'DISPLAY'行不在os.environ:matplotlib.use('Pdf')中,对于自动检测缺少X11非常有用.当然你需要事先`导入os,matplotlib`和`之后导入matplotlib.pyplot`. (4认同)