WSL 中的远程开发
本教程将引导您完成启用 适用于 Linux 的 Windows 子系统 (WSL) 的过程,并使用 WSL 扩展在 WSL 中运行 Visual Studio Code。
先决条件
您需要安装 Visual Studio Code。
安装扩展
WSL 扩展使您能够在适用于 Linux 的 Windows 子系统 (WSL) 中运行 Visual Studio Code。

先决条件检查
安装 WSL 扩展后,您会在最左侧看到一个新的状态栏项。

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

启用 WSL
适用于 Linux 的 Windows 子系统 (WSL) 是 Windows 10 的一项可选功能。您可以通过“Windows 功能”对话框或 PowerShell 启用它。
Windows 功能对话框
在 Windows 搜索栏中,键入“功能”以打开“打开或关闭 Windows 功能”对话框。向下滚动并选中“适用于 Linux 的 Windows 子系统”。

选择“确定”,系统会提示您重启 Windows。
PowerShell
如果愿意,您可以以管理员身份打开 PowerShell,然后键入
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
命令运行后,系统会提示您重启 Windows。

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

WSL 已启用,但您尚未安装 Linux 发行版。
安装 Linux 发行版
您可以从 Microsoft Store 安装适用于 WSL 的 Linux 发行版。您可以使用商店应用,或在 Windows 搜索栏中搜索 Linux 发行版。选择要安装的 Linux 发行版(例如 Ubuntu),然后按照提示进行操作。

选择“安装”。

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

Python 开发
如果您尚未安装 Python,请运行以下命令以在 Linux 安装中安装 Python3 和 pip(Python 的包管理器)。
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 端编辑源文件

此模型的问题在于 Python 运行时、pip 或任何 conda 包都没有安装在 Windows 上。

请记住,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 Code Server”的(c7d83e57… 号是 VS Code Server 的版本,与您刚刚安装的客户端工具匹配)。VS Code 会在 Linux 端安装一个小服务器,然后桌面版 VS Code 将与该服务器通信。该服务器随后会在 WSL 中安装和托管扩展,以便它们在 WSL 中安装的工具和框架的上下文中运行。换句话说,您的语言扩展将针对在 WSL 中安装的工具和框架运行,而不是针对在 Windows 端安装的工具和框架运行,这对于正确的开发体验至关重要。
接下来,VS Code 将启动并打开 helloWorld 文件夹。您可能会看到一条快速通知,告知您 VS Code 正在连接到 WSL,并且可能会提示您允许访问基于 Node.js 的服务器。

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

集成终端
运行“终端”>“新建终端”(⌃` (Windows、Linux Ctrl+`))以打开一个新的终端实例。

您将从在 Windows 上运行的 VS Code 中启动一个新的 WSL bash shell 实例。
提示:在状态栏的左下角,您可以看到您已连接到“WSL:Ubuntu”实例。

编辑和调试
安装 Python 扩展(及其他工具)
单击 hello.py 以打开进行编辑。您将收到一个扩展推荐,在此情况下是安装 Microsoft Python 扩展,这将为您提供丰富的编辑和调试体验。继续选择“安装”并在提示时重新加载。

为了证明该扩展已安装在 WSL 中,请再次打开“扩展”视图(⇧⌘X (Windows、Linux Ctrl+Shift+X))。您将看到一个标题为“WSL:Ubuntu – 已安装”的部分,您可以在其中看到已安装在 WSL 端的所有扩展。

重新加载后,您还会收到一条通知,告知您未安装 pylint linter。linter 用于显示源代码中的错误和警告。继续选择“安装”。

现在,当您编辑代码时,会获得丰富的颜色高亮和自动补全功能。

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

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

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

应用程序将启动,您将命中断点。您可以检查变量、创建监视和导航调用堆栈。
按 F10 进行单步调试,您将在调试控制台中看到 print 语句的输出。

您将获得 Visual Studio Code 的完整开发体验,并使用安装在 WSL 中的 Linux 实例。
如果您想在 WSL 中打开另一个文件夹,请打开“文件”菜单并选择“打开文件夹”。您会看到一个用于 Linux 文件系统的最小化文件和文件夹导航器,而不是 Windows 文件系统。

如果您想切换回 Windows,请选择“显示本地”选项,您将看到标准的 Windows 文件打开对话框。
结束 WSL 连接
您可以通过“文件”>“关闭远程连接”来结束 WSL 会话,并返回到本地运行 VS Code。
恭喜
恭喜,你已成功完成本教程!
接下来,查看其他远程开发扩展。
或者通过安装远程开发扩展包获取所有这些扩展。