WSL中的远程开发
本教程将带你了解如何启用Windows Subsystem for Linux(WSL),并使用WSL扩展在WSL中运行Visual Studio Code。
前提条件
你需要安装Visual Studio Code。
安装扩展
WSL 扩展允许你在 Windows 子系统 for Linux(WSL)中运行 Visual Studio Code。

前置检查
安装了WSL扩展后,你会在最左侧看到一个新的状态栏项目。

远程状态栏项目可以快速显示 VS Code 正在运行的上下文(本地还是远程),点击该项会弹出 WSL 扩展命令。

启用 WSL
Windows Linux子系统(WSL)是Windows 10的一个可选功能。您可以通过Windows功能对话框或PowerShell启用。
Windows 功能对话框
在 Windows 搜索栏中输入“features”,即可弹出“开启和关闭 Windows 功能”对话框。向下滚动,查看 Windows 子系统支持的 Linux。

选择确定,系统会提示你重启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终端并完成安装。你需要创建一个用户ID和密码,因为你正在搭建一个完整的Linux实例。你现在是在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$坐骑:

这种模型的问题在于,Python 运行时、PIP 或任何 conda 包都未安装在 Windows 上。

记住,Python 是安装在 Linux 发行版里的,这意味着如果你在 Windows 端编辑 Python 文件,除非在 Windows 上安装相同的 Python 开发栈,否则无法运行或调试它们。这就失去了建立一个包含所有 Python 工具和运行时的孤立 Linux 实例的初衷!
WSL比赛
在WSL终端里,确保你在helloWorld文件夹里,然后输入“代码。”以启动Visual Studio Code。该'.'参数告诉 VS Code 打开当前文件夹。如果你使用 Insiders 版本的 VS Code,你必须运行“代码内线。”反而。
注意:如果这个命令不起作用,你可能需要重启终端,或者你安装时没有把 VS Code 添加到路径中。

你首先会看到一条关于“安装VS Code Server”的提示(c7d83e57...数字是与你刚刚安装的客户端工具匹配的VS Code服务器版本)。VS Code是在Linux端安装一个小型服务器,桌面VS Code随后会与它通信。该服务器随后会安装并托管WSL中的扩展,使其能在WSL中安装的工具和框架的上下文中运行。换句话说,你的语言扩展将针对WSL中安装的工具和框架运行,而不是在Windows端安装的,这对于正确的开发体验来说是应有的。
接下来发生的是VS Code启动并打开helloWorld文件夹。你可能会看到一个快速通知,告诉你 VS Code 正在连接到 WSL,并可能提示你允许访问基于 Node.js 的服务器。

现在,当你悬停在上面时hello.py你会得到正确的 Linux 路径。

集成终端
在新终端>运行终端(⌃'(Windows,Linux Ctrl+'))以打开新的终端实例。

你会在 WSL 中重新启动 bash shell 实例,同样是通过 Windows 上的 VS Code 运行。
提示:在状态栏左下角,你可以看到你已经连接到了你的 WSL: Ubuntu 实例。

编辑与调试
安装 Python 扩展(及其他工具)
点击hello.py打开它以便编辑。系统会提示你推荐一个扩展,在这里是安装 Microsoft Python 扩展,这将为你提供丰富的编辑和调试体验。如果有提示,可以选择安装并重新加载。

要证明扩展已安装在 WSL 中,请再次打开扩展视图(⇧⌘X(Windows,Linux Ctrl+Shift+X))。你会看到一个名为 WSL: Ubuntu – 已安装的部分,并且可以看到 WSL 端安装的所有扩展。

重新加载时,你还会提示没有安装支柱衬垫。模板用于显示源代码中的错误和警告。请选择安装。

现在,当你编辑代码时,你会得到丰富的色彩化和补全效果。

当你保存文件(⌘S(Windows,Linux Ctrl+S))时,文件上会出现有粘土错误和警告。

调试
工具准备好后,我们再进一步。在 hello.py 行的第1行设置断点,方法是点击行号左侧的槽,或者将光标放在行上并按F9。

现在,按F5来运行你的申请。你会被问到如何运行这个应用,因为这是一个简单的文件,只需选择 Python 文件即可。

应用会启动,你会遇到断点。你可以检查变量,创建监视,并导航调用栈。
按F10步进,你会在调试控制台看到print语句的输出。

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

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