使wsl的ubuntu 支持可视化(GUI)窗口

警告
本文最后更新于 2023-01-27,文中内容可能已过时。

起因

用着wsl的Ubuntu的时候,在遇到这种出现可视化界面弹出窗口的时候

因为没有显示设备可以给他输出,会报错

1
_tkinter.TclError: no display name and no $DISPLAY environment variable

image-20221215193105322

解决方法

因为WSL子系统与Windows的图形显示环境没有直接连接

所以用一个软件作为图形显示环境(显示屏) 就可以了

下载

这里我用的是Xming X Server for Windows

一个开源的在 Microsoft Windows 操作系统上运行 X Window System的软件

https://sourceforge.net/projects/xming/

安装

image-20221215200539181

这一步选不装ssh就行,反正wsl用不到PuTTY

他会安装XLaunch和Xming Server

运行

点击XLaunch,推荐选Mutiple windows,多窗口

他会在后台运行,你弹出一个 他会出现一个刚好大小的窗口

image-20221215201818731

display number是你从wsl向设备连接的设备号

下一步不用改

image-20221215201920697

image-20221215201929362

第三步选上No Access Control,就不用在每次弹窗都提示了

完成即可

配置Ubuntu部分

安装xfce4

什么是xfce4

Xfce是一个自由软件,运行在类Unix操作系统 (如Linux、FreeBSD 和 Solaris)上,提供轻量级桌面环境。Xfce快速、轻量,界面美观和对用户友好。Xfce由独立的软件组件构成,可根据需要单独使用或者组合在一起提供计算机图形桌面环境的全面功能。

安装命令

1
apt install xfce4

安装过程中,遇到这个窗口选默认就可以

image-20221215202941783

然后修改你的shell的设置文件

比如你用的shell是bash,就修改~/.bashrc

我用的是zsh,修改~/.zshrc

任意地方添加一行

1
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{ print $2 }'):0;

这是连接你的Windows 主机地址

如果报错连不上的话,可以用cmd再找WSL那条的IP地址

输入ipconfig

image-20221215204426682

然后填export DISPLAY=你的IP:0;

然后退出编辑就行

运行

输入zsh再次启动加载终端就能生效了

image-20221215204911190

查看效果

0%