python-matplotlib + threading?
Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті.
Есть малюсенькая программка на питоне, которая строит красивые графики, используя pylab (точнее, matplotlib.pyplot). Требуется минимальными усилиями припаять к этому веб-интерфейс. Собственно, я это уже сделал, но matplotlib (или я?), похоже, не совсем дружит с тредами (а их создает веб-фреймворк). В частности, если просто делать pyplot.figure (None,...) и потом pyplot.savefig (), то безбожно течет память, т.к. каждый раз создается новая картинка, а старая картинка почему-то не удаляется; если же все время использовать один и тот же id картинки, или явно делать pyplot.close (), программа валится, т.к., судя по всему, pyplot ожидает, что все функции matplotlib должны вызываться в одном и том же треде. Понятно, что можно для создания картинок создать свой тред (или уж использовать multiprocessing), и принудительно ставить все запросы в очередь к этакому active object, но как-то не хочется городить огород ради пары графиков. Может, можно что-то в matplotlib подкрутить, чтобы ему полегчало? Вообще, у кого есть опыт скрещивания matplotlib-a с тредами и вебом? Памажите.
1 коментар
Додати коментар Підписатись на коментаріВідписатись від коментарів