Python 运行时错误:显示变量无效

Python 运行时错误:显示变量无效,python,linux,matplotlib,Python,Linux,Matplotlib,我使用linux中的ssh命令在另一台机器上运行python脚本。我还运行了以下命令: source ~/.bashrc 登录到另一台机器后,以便在新机器中定义正确的路径。我在运行以下python代码行时收到错误消息,即使我试图按照中的说明定义后端 >>> import matplotlib >>> import pylab as plt >>> matplotlib.use('Agg') >>> import nump

我使用
linux
中的
ssh
命令在另一台机器上运行python脚本。我还运行了以下命令:

source ~/.bashrc 
登录到另一台机器后,以便在新机器中定义正确的路径。我在运行以下python代码行时收到错误消息,即使我试图按照中的说明定义后端

>>> import matplotlib
>>> import pylab as plt
>>> matplotlib.use('Agg')
>>> import numpy as np
>>> x=np.arange(0,2,0.001)
>>> y=np.sin(x)**2+4*np.cos(x)
>>> fig = plt.figure()
>>> plt.plot(x,y,'r.')     
错误消息

This probably means that Tcl wasn't installed properly.
Traceback (most recent call last):
  File "Systematic_Optimised.py", line 513, in <module>
    fig = plt.figure()
  File "/vol/anaconda/lib/python2.7/site-packages/matplotlib/pyplot.py", line 435, in figure
    **kwargs)
  File "/vol/anaconda/lib/python2.7/site-packages/matplotlib/backends/backend_qt4agg.py", line 47, in new_figure_manager
    return new_figure_manager_given_figure(num, thisFig)
  File "/vol/anaconda/lib/python2.7/site-packages/matplotlib/backends/backend_qt4agg.py", line 54, in new_figure_manager_given_figure
    canvas = FigureCanvasQTAgg(figure)
  File "/vol/anaconda/lib/python2.7/site-packages/matplotlib/backends/backend_qt4agg.py", line 72, in __init__
    FigureCanvasQT.__init__(self, figure)
  File "/vol/aibn84/data2/zahra/anaconda/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.py", line 68, in __init__
    _create_qApp()
  File "/vol/anaconda/lib/python2.7/site-packages/matplotlib/backends/backend_qt5.py", line 138, in _create_qApp
    raise RuntimeError('Invalid DISPLAY variable')
RuntimeError: Invalid DISPLAY variable
这可能意味着Tcl没有正确安装。
回溯(最近一次呼叫最后一次):
文件“systemic_optimized.py”,第513行,在
图=plt.图()
文件“/vol/anaconda/lib/python2.7/site packages/matplotlib/pyplot.py”,图中第435行
**kwargs)
文件“/vol/anaconda/lib/python2.7/site packages/matplotlib/backends/backend_qt4agg.py”,第47行,在new_figure_manager中
返回新的\u图形\u管理器\u给定的\u图形(num,thisFig)
文件“/vol/anaconda/lib/python2.7/site packages/matplotlib/backends/backend\u qt4agg.py”,第54行,在新图\u manager\u给定图\u中
画布=图CanvasQTagg(图)
文件“/vol/anaconda/lib/python2.7/site packages/matplotlib/backends/backend_qt4agg.py”,第72行,在__
FigureCanvasQT.\uuuuuu初始\uuuuuuuuuuuuuuu(自我,图)
文件“/vol/aibn84/data2/zahra/anaconda/lib/python2.7/site packages/matplotlib/backends/backend_qt4.py”,第68行,in_uuinit__
_创建_qApp()
文件“/vol/anaconda/lib/python2.7/site packages/matplotlib/backends/backend_qt5.py”,第138行,在_create_qApp中
raise RUNTIMERROR('显示变量无效')
运行时错误:显示变量无效

任何解决问题的建议

必须声明
matplotlib。在
将pylab作为plt导入之前使用('agg')

添加

plt.switch_backend('agg')
之后


在您的机器上执行echo$DISPLAY
。你的操作系统是什么,你是通过ssh运行的吗?如果你必须在远程机器上使用显示器,你需要使用ssh和
-X
参数。我使用了
ssh-Xusername@host
命令登录。看一看,似乎您应该使用小写字母“a”,matplotlib也是。在将pylab作为plt导入之前使用('agg')。@MauroBaraldi是的,我使用了。至少它对我有效。在必须
pip安装PySide
之后,它在虚拟环境中也对我有效。谢谢!对我来说,
importmatplotlib;matplotlib.use('agg')
没有修复错误,但是
导入matplotlib;matplotlib.pyplot.switch_backend('agg')
did(如建议的)。谢谢!这对pylint的效果更好:)这太棒了,现在我可以根据运行代码的方式切换后端。我在使用“agg”时遇到了一个问题,它停止在命令窗口中显示绘图,这有时会令人失望。因此,我可以切换出后端供我使用。
import matplotlib.pyplot as plt