我在我的ubuntu 18.04linux机器上运行/托管了一个完全工作的docker映像。但是,通过powershell通过ssh从我的win10膝上型计算机连接到物理计算机:
ssh username@machine
当我试图通过ssh远程执行代码时,matplotlib确实会出现以下错误:
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-server转发给docker。