WSL 中的远程开发

本教程将引导你启用适用于 Linux 的 Windows 子系统(WSL) 并使用WSL扩展在 WSL 中运行 Visual Studio Code 。

先决条件

您需要安装Visual Studio Code 。

安装扩展

WSL 扩展使你能够在适用于 Linux 的 Windows 子系统 (WSL) 中运行 Visual Studio Code。

安装 WSL 扩展

WSL 扩展

先决条件检查

安装 WSL 扩展后,您将在最左侧看到一个新的状态栏项目。

远程状态栏项目

远程状态栏项目可以快速显示 VS Code 在哪个上下文中运行(本地或远程),单击该项目将调出 WSL 扩展命令。

WSL 扩展命令

启用 WSL

Windows Subsystem for Linux (WSL) 是 Windows 10 上的一项可选功能。您可以通过 Windows 功能对话框或 PowerShell 启用它。

Windows 功能对话框

在 Windows 搜索栏中,键入“功能”以显示“打开和关闭 Windows 功能”对话框。向下滚动并检查适用于 Linux 的 Windows 子系统

打开和关闭 Windows 功能对话框

选择“确定”,系统将提示您重新启动 Windows。

电源 Shell

如果您愿意,可以以管理员身份打开 PowerShell 并键入:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

命令运行后,系统将提示您重新启动 Windows。

PowerShell提示重启

检查 WSL

重新启动 Windows 后,您可以通过打开命令提示符并键入“wsl”来检查是否已启用 WSL。

WSL检查

WSL 已启用,但您尚未安装 Linux 发行版。

安装 Linux 发行版

您可以从 Microsoft Store 安装 WSL 的 Linux 发行版。您可以使用商店应用程序,或在 Windows 搜索栏中搜索 Linux 发行版。选择您要安装的 Linux 发行版(例如 Ubuntu)并按照提示进行操作。

选择Ubuntu发行版

选择安装

安装Ubuntu

完成后,选择启动即可开始。这将打开一个 Linux 终端并完成安装。由于您要设置完整的 Linux 实例,因此您需要创建用户 ID 和密码。您现在正在 Windows 上运行 Linux。

Linux终端

Python开发

如果您尚未安装 Python,请运行以下命令将 Python3 和 pip(Python 的包管理器)安装到您的 Linux 安装中。

sudo apt update
sudo apt install python3 python3-pip

要验证,请运行:

python3 --version

从规范的“Hello World”应用程序开始。创建一个名为“helloWorld”的新文件夹,然后添加一个 Python 文件,该文件将在运行时打印一条消息:

mkdir helloWorld && cd helloWorld
echo 'print("hello from python on ubuntu on windows!")' >> hello.py
python3 hello.py

在远程 Linux 环境中(这个 WSL 发行版从技术上讲是另一台没有 UI 的机器,只是恰好在您的计算机上本地运行),您的开发工具和经验非常有限。您可以在终端中运行Vim\\wsl$来编辑文件,也可以通过挂载在 Windows 端编辑源:

\wsl$ 挂载

此模型的问题在于 Windows 上未安装 Python 运行时、pip 或任何与此相关的 conda 包。

Windows 上没有 Python

请记住,Python 安装在 Linux 发行版中,这意味着如果您在 Windows 端编辑 Python 文件,则无法运行或调试它们,除非您在 Windows 上安装相同的 Python 开发堆栈。这违背了使用所有 Python 工具和运行时设置独立 Linux 实例的目的!

在 WSL 中运行

在 WSL 终端中,确保您位于 helloWorld 文件夹中,然后键入'code .'以启动 Visual Studio Code。该'.'参数告诉 VS Code 打开当前文件夹。如果您使用VS Code 的Insiders版本,则必须改为运行'code-insiders .'

注意:如果此命令不起作用,您可能需要重新启动终端,或者您可能在安装 VS Code 时没有将其添加到您的路径中。

启动 VS 代码

您将看到的第一件事是有关“安装 VS Code 服务器”的消息(c7d83e57… 编号是与您刚刚安装的客户端工具匹配的 VS Code 服务器版本)。VS Code 正在 Linux 端安装一个小型服务器,然后桌面 VS Code 将与之通信。然后,该服务器将在 WSL 中安装和托管扩展,以便它们在 WSL 中安装的工具和框架的上下文中运行。换句话说,您的语言扩展将针对 WSL 中安装的工具和框架运行,而不是针对 Windows 端安装的工具和框架运行,因为它应该是为了获得正确的开发体验。

接下来发生的事情是 VS Code 将启动并打开该helloWorld文件夹。您可能会看到一条快速通知,告诉您 VS Code 正在连接到 WSL,并且系统可能会提示您允许访问基于 Node.js 的服务器。

安装 vscode 服务器

现在,当您将鼠标悬停在 上时hello.py,您将获得正确的 Linux 路径。

显示 hello.py Linux 路径

综合终端

运行Terminal > New Terminal ( ⌃` (Windows、Linux Ctrl+` ) ) 以打开新的终端实例。

WSL 中的新航站楼

您将再次从 Windows 上运行的 VS Code 在 WSL 中启动 bash shell 的新实例。

提示:在状态栏的左下角,您可以看到您已连接到WSL: Ubuntu实例。

WSL 扩展状态栏

编辑和调试

安装 Python 扩展(和其他工具)

单击hello.py打开它进行编辑。系统将提示您扩展推荐,在本例中是安装Microsoft Python扩展,这将为您提供丰富的编辑和调试体验。如果出现提示,请继续并选择安装并重新加载。

Python扩展推荐

要证明扩展已安装在 WSL 中,请再次打开扩展视图 ( ⇧⌘X (Windows、Linux Ctrl+Shift+X ) )。您将看到标题为WSL: Ubuntu – Installed 的部分,并且您可以看到 WSL 端安装的任何扩展。

WSL 安装的扩展

重新加载后,您还会收到提示,告诉您 pylint linter 尚未安装。Linters 用于显示源代码中的错误和警告。继续并选择安装

pylint 未安装通知

现在,当您编辑代码时,您可以获得丰富的着色和补全。

Python 智能感知

当您保存文件(⌘S(Windows、Linux Ctrl+S)时,您会在文件上收到 linting 错误和警告。

皮林特错误

调试

设置好工具后,让我们更进一步。通过单击行号左侧的装订线或将光标放在该行上并按F9在 hello.py 的第 1 行上设置断点。

设置断点

现在,按F5运行您的应用程序。系统将询问您如何运行该应用程序,由于这是一个简单的文件,因此只需选择Python File

选择调试配置

应用程序将启动,并且您将到达断点。您可以检查变量、创建监视并导航调用堆栈。

F10进行单步执行,您将在调试控制台中看到 print 语句的输出。

VS Code 调试视图

您可以使用 WSL 中安装的 Linux 实例获得 Visual Studio Code 的完整开发体验。

如果您想在 WSL 中打开另一个文件夹,请打开“文件”菜单并选择“打开文件夹”。您将获得适用于 Linux 文件系统(而非 Windows 文件系统)的最小文件和文件夹导航器。

打开文件夹导航器

如果您想切换回 Windows,请选择“显示本地”选项,您将看到标准的 Windows 文件打开对话框。

结束您的 WSL 连接

您可以在 WSL 中结束会话,然后使用File > Close Remote Connection返回到本地运行 VS Code 。

恭喜你

恭喜您,您已成功完成本教程!

接下来,查看其他远程开发扩展。

或者通过安装远程开发扩展包来获取它们 。