web-dev-qa-db-fra.com

Matplotlib - Python Erreur

Installer:

Processeur: x86_64 Système d'exploitation: GNU/Linux Distro: Fedora Release 13 (Goddard).

Python 2.6.4

 /usr/bin/python

Voici le problème suivant:

J'essaye de générer quelques graphiques en utilisant Matplotlib et Python. Comme j'entends la majorité des solutions .. il semble y avoir des problèmes de compatibilité entre les architectures matplotlib et 64 bits.

J'ai installé Matplotlib depuis ici

Voici l'erreur que j'obtiens:

Traceback (most recent call last):
  File "plot-thread-characterization.py", line 24, in <module>
    import matplotlib.pyplot as plt
  File "/usr/lib64/python2.6/site-packages/matplotlib/pyplot.py", line 78, in <module>
    new_figure_manager, draw_if_interactive, show = pylab_setup()
  File "/usr/lib64/python2.6/site-packages/matplotlib/backends/__init__.py", line 25, in pylab_setup
    globals(),locals(),[backend_name])
  File "/usr/lib64/python2.6/site-packages/matplotlib/backends/backend_gtkagg.py", line 10, in <module>
    from matplotlib.backends.backend_gtk import gtk, FigureManagerGTK, FigureCanvasGTK,\
  File "/usr/lib64/python2.6/site-packages/matplotlib/backends/backend_gtk.py", line 8, in <module>
    import gtk; gdk = gtk.gdk
  File "/usr/lib64/python2.6/site-packages/gtk-2.0/gtk/__init__.py", line 64, in <module>
    _init()
  File "/usr/lib64/python2.6/site-packages/gtk-2.0/gtk/__init__.py", line 52, in _init
    _gtk.init_check()
RuntimeError: could not open display

Merci.

24
user1816896

matplotlib ne parvient pas à se connecter à un serveur X pour son affichage GTK.

Il y a quelques options ici:

  1. Exécutez un serveur X local et activez le transfert X11 dans votre client ssh, pour afficher la sortie sur votre machine locale. Vous pouvez vérifier que cela fonctionne en vérifiant que la variable d'environnement $ DISPLAY est définie sur le serveur.

  2. Appelez matplotlib.use (...) pour spécifier un back-end d'affichage différent, par exemple le rendu en fichier pdf, avant l'importation de pyplot, par exemple.

    import matplotlib as mpl

    mpl.use('Agg')

    import matplotlib.pyplot as plt

Voir http://matplotlib.org/faq/howto_faq.html#generate-images-without-having-a-window-appear pour plus de détails.

37
James Beilby