Como configuro o matplotlib para funcionar no EC2?

2

Estamos tentando criar um ambiente de nuvem de desenvolvimento / pesquisa virtual para nossos alunos. Os alunos precisam ser capazes de fazer o login, iniciar o IDE do python e plotar alguns gráficos para o trabalho de casa.

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

Problema: executando algo assim no ide

nltk.download()

gera uma nova janela. MAS quando tentamos algo assim:

book2.dispersion_plot("chair")

Nada acontece , onde esperamos que uma nova janela apareça e mostre o enredo (isso é o que acontece na máquina local). Eu suspeito que isso tem algo a ver com o X11, mas neste momento eu estou fora do meu conhecimento de administração de sistemas. Confirmei isso de um cliente Mac (xQuartz) e PC (xming). Qualquer ajuda seria muito apreciada.

    
por denten 30.03.2013 / 23:23

1 resposta

2

Entendi.

O matplotlib usa um backend de renderização que tem que ser legal com o x11. Mas selecionar o backend direito manualmente [matplotlib.use ('TkAgg')] lançaria uma exceção. Acontece que o matplotlib não constrói corretamente no Ubuntu com pip, faltando algumas dependências - especificamente as necessárias para backends compatíveis com x11 (definindo o padrão para 'Agg' em 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 acima define corretamente o back-end padrão para TkAgg (no matplotlibrc). Espero que ajude alguém!

    
por denten 31.03.2013 / 03:47