Я использую ядро ipython на удаленной машине через:
user@remote_machine$ ipython kernel
[IPKernelApp] To connect another client to this kernel, use:
[IPKernelApp] --existing kernel-24970.json
а затем через туннелирование ssh вручную (см. здесь) подключите к нему qtconsole на моей локальной машине:
user@local_machine$ for port in $(cat kernel-24970.json | grep '_port' | grep -o '[0-9]\+'); do ssh remote_machine -Y -f -N -L $port:127.0.0.1:$port; done
user@local_machine$ ipython qtconsole --existing kernel-24970.json
Это прекрасно работает. Однако для визуализации данных во время отладки я хочу использовать matplotlib.pyplot. Хотя я включил пересылку X11 в моем туннеле ssh (через -Y), когда я пытаюсь что-то построить, я получаю следующую ошибку:
TclError: no display name and no $DISPLAY environment variable
как будто переадресация X11 не имеет никакого эффекта.
Более того, однажды, когда у меня был доступ к удаленной машине, я запустил удаленное ядро командой:
user@remote_machine$ ipython qtconsole
и повторил тот же процесс с моей локальной машины. На этот раз у меня не было ошибок. Но цифры рисовались на удаленной машине, а не на моей локальной.
Итак, кто-нибудь знает, можно ли подключиться к удаленному ядру ipython и отображать графики локально? (обратите внимание, что встроенный режим работает и показывает графики в локальной qtconsole, но это бесполезно для меня, так как мне часто нужно увеличивать масштаб).