2 votes

Comment puis-je configurer matplotlib pour qu'il fonctionne sur EC2 ?

Nous essayons de mettre en place un environnement virtuel de développement / recherche pour nos étudiants. Les étudiants doivent pouvoir se connecter, lancer l'IDE Python et tracer quelques graphiques pour leurs devoirs.

Nous utilisons Ubuntu 12.10 64bit, avec Python et IDLE ide installés. Les étudiants se connectent en utilisant ssh -X et lancent IDLE, qui ouvre une fenêtre GUI.

Problème : exécuter quelque chose comme ceci dans l'ide

nltk.download()

crée une nouvelle fenêtre. MAIS quand on essaie quelque chose comme ça :

book2.dispersion_plot("chair")

Rien ne se passe où l'on s'attendrait à ce qu'une nouvelle fenêtre apparaisse et affiche le graphique (c'est ce qui se passe sur la machine locale). Je soupçonne que cela a quelque chose à voir avec X11, mais à ce stade, je suis loin d'avoir toutes les connaissances d'un administrateur système. J'ai confirmé ce problème à partir d'un client Mac (xQuartz) et PC (xming). Toute aide serait très appréciée.

2voto

denten Points 141

Je l'ai.

matplotlib utilise un backend de rendu qui doit être compatible avec x11. Mais en sélectionnant manuellement le bon backend [matplotlib.use('TkAgg')], une exception est levée. Il s'avère que matplotlib ne se construit pas correctement sous ubuntu avec pip, car il manque certaines dépendances, en particulier celles nécessaires pour les backends compatibles avec x11 (en fixant le défaut à 'Agg' dans matplotlibrc). Corrigé par :

pip uninstall matplotlib           //unistall matplotlib
apt-get build-dep matplotlib       //download and build needed dependencies
pip install -U matplotlib          //force matplotlib rebuild

Ce qui précède définit correctement le backend par défaut à TkAgg (dans matplotlibrc). J'espère que cela aidera quelqu'un !

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X