Как настроить matplotlib для работы на EC2?

Как настроить matplotlib для работы на EC2?

Мы пытаемся создать виртуальную облачную среду разработки/исследования для наших студентов. Студенты должны иметь возможность войти в систему, запустить python IDE и построить несколько графиков для своего домашнего задания.

Мы используем 64-битную Ubuntu 12.10 с установленными Python и IDLE ide. Студенты входят в систему с помощью ssh -X и запускают IDLE, который создает окно GUI.

Проблема: запуск чего-то подобного в ide

nltk.download()

создает новое окно.НОкогда мы попробуем что-то вроде этого:

book2.dispersion_plot("chair")

Ничего не произошло, где мы ожидаем появления нового окна и отображения графика (это то, что происходит на локальной машине). Я подозреваю, что это как-то связано с X11, но на данный момент я далеко за пределами своих познаний в области системного администрирования. Подтверждено как с Mac (xQuartz), так и с PC (xming) клиента. Любая помощь будет высоко оценена.

решение1

Понятно.

matplotlib использует бэкэнд рендеринга, который должен хорошо работать с x11. Но выбор правильного бэкэнда вручную [matplotlib.use('TkAgg')] выдаст исключение. Оказывается, matplotlib не собирается правильно под Ubuntu с pip, отсутствуют некоторые зависимости — в частности, те, которые необходимы для бэкэндов, дружественных к x11 (установка значения по умолчанию на 'Agg' в matplotlibrc). Исправлено:

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

Вышеприведенное правильно устанавливает бэкэнд по умолчанию на TkAgg (в matplotlibrc). Надеюсь, это кому-то поможет!

Связанный контент