
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!