[英]docker _tkinter.TclError: couldn't connect to display
ubuntu 16.04,已安裝 nvidia-docker,正在運行 tensorflow 容器,python 2.7
我想在容器內運行一個簡單的 python 代碼。 如下圖
from tkinter import *
master = Tk()
canvas_width = 80
canvas_height = 40
w = Canvas(master,
width=canvas_width,
height=canvas_height)
w.pack()
y = int(canvas_height / 2)
w.create_line(0, y, canvas_width, y, fill="#476042")
mainloop()
但是當我運行這個時,這個錯誤來了
_tkinter.TclError: 沒有顯示名稱和 $DISPLAY 環境變量
並根據此站點https://github.com/moby/moby/issues/8838我將我的容器提交給一個圖像,並使用 -e 標志再次運行它:
-e 顯示=:0.0
但這里出現了錯誤:
_tkinter.TclError:無法連接到顯示器:0.0
我沒有使用 ssh 登錄容器。 任何人都可以給我建議嗎?
這是因為容器無法訪問主機的 x11 套接字。 所以在執行 docker run 時,需要包含這兩個標志。
-v /tmp/.X11-unix:/tmp/.X11-unix
-e 顯示=unix$顯示
在此之后,我們需要做另一個操作。 因為X11的默認設置只允許本地用戶打印。 所以我們需要將其更改為所有用戶。
$ sudo apt-get install x11-xserver-utils
$ xhost +
那么問題就解決了。 ^ ^
_tkinter.TclError: 無法連接以顯示“localhost:0.0”
我有同樣的錯誤信息,已解決。 (至少錯誤信息消失了!)
export MPLBACKEND='Agg'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.