web-dev-qa-db-fra.com

RuntimeError: Variable DISPLAY non valide

J'exécute mon script python sur une autre machine en utilisant la commande ssh dans linux. J'ai également exécuté cette commande:

source ~/.bashrc 

après la connexion à l’autre machine, afin de définir les chemins appropriés dans la nouvelle machine. Je recevais le message d'erreur pour exécuter les lignes de code python) suivantes même si j'ai essayé de suivre les instructions dans cette question en définissant le backend.

>>> 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.')     

Le message d'erreur

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

toute suggestion comment résoudre le problème

43
Dalek

Vous devez déclarer matplotlib.use('agg') avant import pylab as plt.

référence

56
Mauro Baraldi

Ajouter

plt.switch_backend('agg')

après

import matplotlib.pyplot as plt
41
ssmetkar