作者Evenni (乐而不淫哀而不伤)
看板Python
标题[问题] 显示remote docker下matplotlib结果
时间Wed Aug 18 10:11:16 2021
各位大大好
我有两台工作机 MacBook 与 ubuntu 18.04 PC
实际上的开发是Ubuntu下的docker环境为主
在Ubuntu下启动docker run 带参数
docker run -it\
--rm\
--gpus=all\
--shm-size=256m\
-v /tmp/.X11-unix:/tmp/.X11-unix\
-e DISPLAY=unix$DISPLAY\
-e GDK_SCALE\
-e GDK_DPI_SCALE\
--name mlds_rl ooxx:torch1.8
则在container中执行python
import numpy as np
import matplotlib.pyplot as plt
y = np.random.rand(30)
plt.plot(y)
plt.show()
可以将图片显示在ubuntu画面
但若是我想是用Macbook远端ssh进入ubuntu container也想看到
matplotlib plt.show()的结果,该怎麽做呢?
update
经过一下午的研究
修改Dockerfile, 增加下面段落
RUN sudo apt-get install libcairo2-dev pkg-config python3-dev libgirepository1.0-dev -y;\
sudo apt-get install python3-gi gobject-introspection gir1.2-gtk-3.0 xauth -y;\
python3 -m pip install --user pycairo==1.19.1 --no-use-pep517;\
python3 -m pip install --user gobject==0.1.0 PyGObject==3.30.5 --no-use-pep517;\
sudo sed -iE "s/X11Forwarding yes/X11UseLocalhost no\nX11Forwarding yes/" /etc/ssh/sshd_config
docker run的方式不变
》》Mac端要做的只有两件事
1.安装xquartz (
https://www.xquartz.org/)
2.ssh -X docker@container (一定要带-X)
就可以做到 mac --> dockerhost --> container,
mac使用ssh直接进入container, run matplotlib相关python code, output在mac端显示
》》Container端的python code在import matplotlib时要稍稍修正
import matplotlib
matlotlib.use('tkagg') <-- 主要是增加这行 backend 修改
import matplotlib.pyplot as plt
import numpy as np
y = np.random.rand(30)
plt.plot(y)
plt.show()
update
如果 mac->dockerhost(ubuntu)->container 模式工作结束後,
又改成 dockerhost(ubuntu)->container模式
在container中执行 import matplotlib.pyplot as plt 会遇到问题
** (.:5451): WARNING **: Couldn't connect to accessibility bus:
Failed to connect to socket /tmp/dbus-gB2p6CkY1r: Connection refused
修复方式
export NO_AT_BRIDGE=1
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 60.250.149.251 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1629252682.A.8CA.html
1F:推 ggggggh: 我是用react.js写成网页 08/18 14:06
2F:→ Evenni: 网页法可以用jupyter notebook,但是遇到要是用别人的程式 08/18 14:44
3F:→ Evenni: 就要改code,有点麻烦,还是希望环境run起来可以直接跑py档 08/18 14:46
※ 编辑: Evenni (60.250.149.251 台湾), 08/19/2021 11:57:28
※ 编辑: Evenni (60.250.149.251 台湾), 08/19/2021 17:42:07
4F:推 wennie0433: 存成图片再copy出来? 08/20 18:56