У меня есть полностью рабочий образ Docker, запущенный / размещенный на моей машине с Linux Ubuntu 18.04. Однако подключение к физической машине через SSH с моего ноутбука Win10 через PowerShell:
ssh username@machine
Я получаю следующую ошибку от matplotlib, когда пытаюсь выполнить свой код удаленно через ssh:
Traceback (most recent call last):
File "foo", line 284, in <module>
cnnTrainTestApply.applyStructureDetectionNet(absPathToCsvFiles, absPathToCnnOutputFiles)
File "/home/dev/foo.py", line 702, in bar
plt.figure(figsize=(15, 15))
File "/opt/conda/lib/python3.5/site-packages/matplotlib/pyplot.py", line 539, in figure
**kwargs)
File "/opt/conda/lib/python3.5/site-packages/matplotlib/backend_bases.py", line 171, in new_figure_manager
return cls.new_figure_manager_given_figure(num, fig)
File "/opt/conda/lib/python3.5/site-packages/matplotlib/backend_bases.py", line 177, in new_figure_manager_given_figure
canvas = cls.FigureCanvas(figure)
File "/opt/conda/lib/python3.5/site-packages/matplotlib/backends/backend_qt5agg.py", line 35, in __init__
super(FigureCanvasQTAggBase, self).__init__(figure=figure)
File "/opt/conda/lib/python3.5/site-packages/matplotlib/backends/backend_qt5.py", line 235, in __init__
_create_qApp()
File "/opt/conda/lib/python3.5/site-packages/matplotlib/backends/backend_qt5.py", line 122, in _create_qApp
raise RuntimeError('Invalid DISPLAY variable')
RuntimeError: Invalid DISPLAY variable
Ни это, ни ssh -X username@machine
не дают успеха. Работа непосредственно на моей машине без SSH не делает никаких проблем. Я предполагаю, что это запущенный XServer или что-то подобное.
Что я не так делаю в соединении ssh? Как я могу решить проблему?
Поскольку matplotlib требует функционирования бэкэнда qt5, я не могу просто избежать перенаправления X-сервера хост-системы в докер.