¿Cómo configuro matplotlib para que funcione en EC2?

¿Cómo configuro matplotlib para que funcione en EC2?

Estamos intentando configurar un entorno virtual de nube de investigación/desarrollo para nuestros estudiantes. Los estudiantes deben poder iniciar sesión, iniciar Python IDE y trazar algunos gráficos para su tarea.

Estamos ejecutando Ubuntu 12.10 de 64 bits, con Python e IDLE ide instalados. Los estudiantes inician sesión usando ssh -X e inician IDLE, que genera una ventana GUI.

Problema: ejecutar algo como esto en el ide

nltk.download()

genera una nueva ventana.PEROcuando intentamos algo como esto:

book2.dispersion_plot("chair")

No pasa nada, donde esperaríamos que apareciera una nueva ventana y mostrara la trama (eso es lo que sucede en la máquina local). Sospecho que esto tiene algo que ver con X11, pero en este punto ya no tengo conocimientos profundos de administrador de sistemas. Confirmé esto tanto desde un cliente Mac (xQuartz) como PC (xming). Cualquier ayuda sería muy apreciada.

Respuesta1

Entiendo.

matplotlib utiliza un backend de renderizado que tiene que funcionar bien con x11. Pero seleccionar manualmente el backend correcto [matplotlib.use('TkAgg')] generaría una excepción. Resulta que matplotlib no se compila correctamente en ubuntu con pip y le faltan algunas dependencias, específicamente las necesarias para backends compatibles con x11 (estableciendo el valor predeterminado en 'Agg' en matplotlibrc). Arreglado por:

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

Lo anterior establece correctamente el backend predeterminado en TkAgg (en matplotlibrc). ¡Espero que ayude a alguien!

información relacionada