当前位置: 首页 > 面试题库 >

码头工人_tkinter.TclError:无法连接显示

穆文斌
2023-03-14
问题内容

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 DISPLAY =:0.0

但是这里出现错误:

_tkinter.TclError:无法连接到显示器:0.0

我没有使用ssh登录容器。有人可以给我建议吗?


问题答案:

这是因为容器无法访问主机的x11套接字。因此在执行docker run时,需要包括这两个标志。

-v /tmp/.X11-unix:/tmp/.X11-unix

-e DISPLAY = unix $ DISPLAY

然后,我们需要执行另一项操作。因为X11的默认设置仅允许本地用户打印。因此我们需要将其更改为所有用户。

$ sudo apt-get install x11-xserver-utils

$ xhost +

然后问题解决了。^^



 类似资料:
  • 我有一个mongodb服务和一个使用docker compose运行的测试服务: 在我试图运行的start.sh脚本中: 但我得到了以下错误: 我的问题是:为什么会发生错误?Dependes_on属性不应该自动包含服务依赖项吗?正如这里提到的: depends_on 表示服务之间的依赖关系,这有两个效果: docker compose up将按依赖顺序启动服务。在下面的示例中,db和redis将在

  • 问题内容: 我试过在Windows 7上安装docker(使用boot2docker)。但是控制台只是突然存在,我看不到错误,更不用说运行任何命令了。 在安装过程中,我尝试安装和不安装VirtualBox。我也尝试卸载并重新安装docker和virtualbox。似乎没有任何作用。 这是我运行时看到的控制台错误: 问题答案: 请检查您的BIOS的VT-x设置。根据您提供的日志,有一个错误:

  • 问题内容: 我有3个简单的微服务(mysql,apirest,gui),我开始使用docker-compose: 在 MySQL的 和 apirest 微服务没有问题可以进行通信(我可以连接到我的数据库 apirest 使用 的MySQL 作为主机名。 但是,当我尝试使用 apirest* 作为主机名执行http请求(角度)时,我在 gui 微服务中收到以下错误: * 无法加载资源:net ::

  • 问题内容: 当docker-demon启动时,它会向iptables添加一些规则。当通过我删除所有规则时,必须停止并重新启动docker demon以重新创建dockers规则。 有没有办法让docker重新添加其他规则? 问题答案: 最好的方法是重启docker服务,然后将docker规则重新添加到iptables中。(上DEB基:) 但是,如果您只想恢复这些规则而无需重新启动服务,我保存了我的

  • 问题内容: 我什至不理解标题中服务之间的基本区别。这些服务仅仅是提供软件来帮助您配置/组织/管理VM,还是为VM运行提供物理基础设施?换句话说,它们只是开发人员与AWS,Rackspace和Azure之间的便捷接口吗? 问题答案: 不完全是。 Chef / Puppet是“相同的”,它们是配置管理。尽管您可以使用它们来管理虚拟机或公共/私有云,但是大多数人并不倾向于那样使用它们。它们是配置管理。它

  • 我已经使用jsplumb在to div块之间创建了一个连接。我想在连接线上添加箭头。现在箭头没有显示出来。我对此一无所知。 知道为什么箭没有出现吗?有东西不见了吗?多谢了。 `HTML:ABC XYZ CSS: Javascript:jsPlumb.connect({source:“window20”,target:“window21”,锚点:[“Bottom”,“Top”],连接器:“direc