@李万宝 wsl2图形的解决办法:
WSLg 是微软官方为 WSL 提供的内置 GUI 支持功能。它在 Windows 11 和较新版本的 Windows 10 中是默认开启的,无需安装第三方软件。
确保 WSLg 已启用
打开 Windows 的 PowerShell 或 CMD (Command Prompt) 终端(不是 WSL 里的),运行以下命令来更新 WSL:
Bash
wsl --update
如果提示需要更新,请等待更新完成,然后重启 WSL:
Bash
wsl --shutdown
关闭所有 WSL 窗口,然后重新打开一个新的 WSL 终端即可。
设置 DISPLAY 环境变量
WSLg 会自动设置一个名为 DISPLAY 的环境变量,告诉所有 GUI 程序应该把窗口画在哪里。正常情况下,它的值应该是 :0。你的报错很可能是因为这个变量没有被正确设置。
在你的 WSL 终端里,运行以下命令来临时设置它:
Bash
export DISPLAY=:0
设置完后,再次尝试运行你的 ROS 2 命令:
Bash
ros2 run turtlesim turtlesim_node
如果这次成功了,说明问题就在 DISPLAY 变量。为了让这个设置永久生效,把它写入你的 shell 配置文件中。如果你用的是默认的 bash,就执行:
Bash
echo "export DISPLAY=:0" >> ~/.bashrc
source ~/.bashrc