Como configuro o matplotlib para funcionar no EC2?

Como configuro o matplotlib para funcionar no EC2?

Estamos tentando configurar um ambiente virtual de desenvolvimento/pesquisa em nuvem para nossos alunos. Os alunos precisam ser capazes de fazer login, iniciar o IDE python e traçar alguns gráficos para o dever de casa.

Estamos executando o Ubuntu 12.10 de 64 bits, com Python e IDLE ide instalados. Os alunos fazem login usando ssh -X e iniciam o IDLE, que gera uma janela GUI.

Problema: executando algo assim no ide

nltk.download()

gera uma nova janela.MASquando tentamos algo assim:

book2.dispersion_plot("chair")

Nada acontece, onde esperaríamos que uma nova janela aparecesse e mostrasse o gráfico (é o que acontece na máquina local). Eu suspeito que isso tenha algo a ver com o X11, mas neste ponto estou muito longe do meu conhecimento de administração de sistemas. Confirmei isso em um cliente Mac (xQuartz) e PC (xming). Qualquer ajuda seria muito apreciada.

Responder1

Entendi.

matplotlib usa um back-end de renderização que deve funcionar bem com x11. Mas selecionar o back-end correto manualmente [matplotlib.use('TkAgg')] geraria uma exceção. Acontece que o matplotlib não é compilado corretamente no Ubuntu com pip, faltando algumas dependências - especificamente aquelas necessárias para back-ends compatíveis com x11 (definindo o padrão como 'Agg' no matplotlibrc). Corrigido por:

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

O texto acima define corretamente o backend padrão para TkAgg (em matplotlibrc). Espero que ajude alguém!

informação relacionada