Мы пытаемся создать виртуальную облачную среду разработки / исследования для наших студентов. Студенты должны иметь возможность войти в систему, запустить IDE Python и построить графики для своего домашнего задания.
Мы используем 64-битную Ubuntu 12.10 с установленными Python и IDLE ide. Студенты входят в систему с помощью ssh -X и запускают IDLE, который порождает окно графического интерфейса.
Проблема: запустить что-то подобное в ide
nltk.download()
открывает новое окно. НО когда мы пробуем что-то вроде этого:
book2.dispersion_plot("chair")
Ничего не произошло, где мы ожидаем появления нового окна и отображения сюжета (это то, что происходит на локальной машине). Я подозреваю, что это как-то связано с X11, но на данный момент я далек от моих глубоких знаний системного администратора. Подтверждено это как с клиента Mac (xQuartz), так и с ПК (xming). Любая помощь приветствуется.
Понял.
matplotlib использует бэкэнд рендеринга, который должен хорошо работать с x11. Но выбор правого бэкэнда вручную [matplotlib.use ('TkAgg')] вызовет исключение. Оказывается, matplotlib не строится правильно в ubuntu с помощью pip, отсутствуют некоторые зависимости - в частности, те, которые необходимы для x11-дружественных бэкэндов (установка по умолчанию «Agg» в matplotlibrc). Исправлено:
pip uninstall matplotlib //unistalls matplotlib
apt-get build-dep matplotlib //download and build needed dependencies
pip -U matplotlib //force matplotlib rebuild
Приведенное выше правильно устанавливает бэкэнд по умолчанию на TkAgg (в matplotlibrc). Надеюсь, это кому-то поможет!