Windows Linux 显示变量设置的子系统

Windows Subsystem for Linux DISPLAY variable setup

我正在为 Linux 试验 Windows 子系统,并尝试使用 Matplotlib 创建 python 绘图。但是我收到以下错误

RuntimeError: Invalid DISPLAY variable

echo DISPLAY 什么也没显示。如何设置 DISPLAY 变量?

Linux 的 Windows 子系统不正式支持图形 GNU/Linux 桌面应用程序,因此我们无法保证 调用我们选择的图形程序所做的将作为 windows 系统调用来实现。

您 运行 遇到的主要问题是缺少这些程序的图形界面,称为 "X-server"。我们可以尝试通过以下方式解决此问题:

  1. 正在安装 X 服务器(例如 Xming)。
  2. 通过设置环境变量告诉 Linux 的 Windows 子系统使用此 X 服务器作为 DISPLAY。

对于(1),安装Xming,您只需下载并接受默认设置,它会自动启动并等待图形程序显示。

要解决 (2),在你 运行 你的图形程序之前,运行:

export DISPLAY=:0

以便 bash 知道将您正在 运行 的程序的图形输出发送到哪里。

那你可以试试运行一个简单的图形化程序(比如gvim或者python的turtle模块)。

同样,不能保证这适用于所有 GNU/Linux 应用程序,因为 Microsoft 没有将每个 Linux 系统调用转换为 Windows 系统调用,如果您正在使用的图形程序 运行 会发出这样一个不受支持的调用,您的程序可能会崩溃。

这些说明中的大部分都取自以下指南,该指南展示了如何让 gvim 在 Linux 的 Windows 子系统上工作:

http://www.howtogeek.com/261575/how-to-run-graphical-linux-desktop-applications-from-windows-10s-bash-shell/


编辑:由于您还询问了检查 DISPLAY 中的内容,我补充说您可以通过 运行ning 检查 DISPLAY 变量的值:

echo $DISPLAY

$ 确保 bash 将后面的内容解释为变量,而不是字符串文字。运行 echo DISPLAY 只会回显字符串 DISPLAY。)