LINUX.ORG.RU

Удаленная разработка и matplotlib

 , , , ,


1

1

Для кодинга подключаюсь к удаленной машине при помощи x2go.
Недавно заметил, что не могу пользоваться функциями отрисовки всяких графиков при помощи matplotlib, так как интерпретатор сваливается с сегфолтом. Если подключаться по ссш и форвардить среду разработки - то все ок.
Бэкенд для matplotlib - 'TkAgg'. Пытался настроить 'GTK', но оно требует pygtk, которого официально в анаконде нет, а те, что поставляются пользователями matplotlib-ом почему-то не подхватываются. Что делать, как починить?

★★★

А для чего такой изврат? В плане удаленной разработки.

kachan ★★
()

требует pygtk, которого официально в анаконде нет

В поставке нет, но есть ли в репах? Там можно ставить из репозиториев анаконды.

TkAgg

А почему не QtAgg? Там PyQt5 в комплекте анаконды есть и я только через него и рисую.

I-Love-Microsoft ★★★★★
()

Я использую non-interactive backend, например PDF или PNG

import matplotlib                                                               
matplotlib.use('PDF')                                                           
import matplotlib.pyplot as plt                                                 

Работаю по ssh, часто без ForwardX11 yes — всё ок. Но интерактива не будет, да.

Crocodoom ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Нет, в репах нет. Я же написал, что приходилось ставить из пользовательских репозиториев анакоды (который при этом все равно не завелся)

LIKAN ★★★
() автор топика
Ответ на: комментарий от I-Love-Microsoft

Наверное лучше использовать $HOME/.config/matplotlib/matplotlibrc (внутри backend: QTAgg), чтобы код лишним не захламлять (и не бояться, что перепутал порядок импорта).

lu4nik ★★★
()

Вообще, поддерживаю совет с QtAgg, pyqt точно идет в комплекте с анакондой. Немного не в тему, но отображение через QtAgg у меня всегда нормально работало через обычный X11 forwarding.

lu4nik ★★★
()
Ответ на: комментарий от I-Love-Microsoft

Пробовал (правда с Qt5Agg), получаю вот такое

>>> import matplotlib
>>> matplotlib.use(u'Qt5Agg')
>>> from matplotlib.pyplot import imshow
>>> import numpy as np
>>> tmp = np.random.rand(20,20)
>>> imshow(tmp)
This application failed to start because it could not find or load the Qt platform plugin "xcb"
in "".

Available platform plugins are: minimal, offscreen, xcb.

Reinstalling the application may fix this problem.
Aborted

LIKAN ★★★
() автор топика
Ответ на: комментарий от LIKAN

В каталоге программы Qt5 есть еще подкаталог platforms. И там должен лежать libqxcb.so, а в каталоге самой программы требуется почему-то libQt5DBus. Иначе такая же вот ошибка лезет. Надеюсь это подскажет как исправить, но я такой проблемы не встречал если честно, а может я и не использовал графики конкретно из под Anaconda, попробуй для начала дистрибутивным PyQt5 и питоном потренироваться - будет для в нем работать?

I-Love-Microsoft ★★★★★
()
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)

Используйте MathGL — есть и С, и С++, и Фортран, и Питон, и удаленная работа (GUI не надо — сразу в PNG|EPS|SVG|... сохранять можно), и графиков больше, и во всех дистрибутивах давно есть. Даже в MPI распределенные данные строит.

abalakin ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.