Docker 中的 Python Tkinter .TclError : couldn't connect to display

标签 python ubuntu docker tkinter xfce

我是 python 的新手,正在尝试构建一个小应用程序。它需要是一个 GUI 应用程序,我想用 docker 将它容器化。我收到以下错误,找不到解决方案

No protocol specified
No protocol specified
Traceback (most recent call last):
  File "tkinker.py", line 7, in <module>
    tinker = Tk()
  File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1818, in __init__
    self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
_tkinter.TclError: couldn't connect to display ":0.0"

它在本地启动但不会在 docker 中启动。我的操作系统是 Xubuntu。

我已经创建了一个示例应用程序(下方),请参阅 run-test.sh https://github.com/jeremysells/test/tree/master/docker-tkinter

最佳答案

作为described here ,您需要一个 X11 图形层。
但是因为你已经在'(X)Ubuntu上,设置DISPLAY应该足够了:

export DISPLAY=127.0.0.1:0.0

docker run -it -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix yourImage

同时检查 XAuthority .

关于Docker 中的 Python Tkinter .TclError : couldn't connect to display,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39445047/

相关文章:

python - ImportError : Missing required dependencies ['numpy' ]. 没有任何帮助

python - 即使使用 DJANGO 模型表单提交后,图片也不会在数据库中更新

python - 如何更改 tkinter 文本小部件中某些单词的颜色?

ruby-on-rails-3 - Ubuntu 12.10 无法安装 pg gem?

ruby-on-rails -/sign_in 处的 PG::ConnectionBad 无法连接到服务器:连接但我可以使用 psql 连接

php - 从Docker容器向PHP添加扩展

docker - 为什么 docker 容器中的 shell 显示来自主机的 dmesg 内容?

docker - 为什么在我基于 alpine 的 docker-compose 构建中找不到 bin/sh?

python - 删除行包含 Pandas 数据框中的非英语单词

python - 如何删除 Airflow 中的默认示例 dag