
Мы пытаемся создать виртуальную облачную среду разработки/исследования для наших студентов. Студенты должны иметь возможность войти в систему, запустить 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). Надеюсь, это кому-то поможет!