Windows Subsystem for Linux DISPLAY变量设置


问题内容

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

RuntimeError: Invalid DISPLAY variable

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


问题答案:

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

您遇到的主要问题是缺少这些程序的图形界面,称为“ X服务器”。我们可以尝试通过以下方法解决此问题:

  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,因此我补充道,您可以DISPLAY通过运行以下命令检查变量的值:

echo $DISPLAY

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