簡體   English   中英

docker _tkinter.TclError: 無法連接到顯示器

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM