在 WSL 中进行远程开发
本教程将指导你启用 Windows Subsystem for Linux (WSL) 并使用 WSL 扩展在 WSL 中运行 Visual Studio Code。
先决条件
需要安装 Visual Studio Code。
安装扩展
WSL 扩展使你能够在 Windows Subsystem for Linux (WSL) 中运行 Visual Studio Code。
先决条件检查
安装 WSL 扩展后,将在最左侧看到一个新的状态栏项。
远程状态栏项可以快速显示 VS Code 在哪个上下文(本地或远程)中运行,单击该项将显示 WSL 扩展命令。
启用 WSL
Windows Subsystem for Linux (WSL) 是 Windows 10 中的一个可选功能。你可以通过“Windows 功能”对话框或 PowerShell 启用它。
Windows 功能对话框
在 Windows 搜索栏中,键入“features”以打开“启用或关闭 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 终端并完成安装。你需要创建一个用户 ID 和密码,因为你正在设置一个完整的 Linux 实例。现在你正在 Windows 上运行 Linux。
Python 开发
如果你尚未安装 Python,请运行以下命令,将 Python3 和 Python 包管理器 pip 安装到你的 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 端编辑源文件
这种模式的问题在于 Python 运行时、pip 或任何相关的 conda 包都没有安装在 Windows 上。
请记住,Python 是安装在 Linux 发行版中的,这意味着如果你在 Windows 端编辑 Python 文件,则除非在 Windows 上安装相同的 Python 开发堆栈,否则无法运行或调试它们。这违背了拥有一个独立的 Linux 实例,其中包含所有 Python 工具和运行时集的初衷!
在 WSL 中运行
在 WSL 终端中,确保你位于 helloWorld 文件夹中,然后键入 'code .'
以启动 Visual Studio Code。'.'
参数告诉 VS Code 打开当前文件夹。如果你使用的是 VS Code 的 Insiders 版本,则需要运行 'code-insiders .'
代替。
注意: 如果此命令不起作用,你可能需要重启终端,或者在安装时可能未将 VS Code 添加到你的 PATH 中。
你会看到的第一件事是关于“正在安装 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+`)) 以打开新的终端实例。
你将启动 WSL 中的一个新的 bash shell 实例,同样是通过在 Windows 上运行的 VS Code。
提示:在状态栏的左下角,你可以看到已连接到“WSL: Ubuntu”实例。
编辑和调试
安装 Python 扩展(及其他工具)
单击 hello.py
打开以进行编辑。系统将提示你推荐扩展,本例中是安装 Microsoft Python 扩展,它将为你提供丰富的编辑和调试体验。请继续选择“安装”,如果提示则重新加载。
要证明该扩展已安装在 WSL 中,请再次打开“扩展”视图 (⇧⌘X (Windows、Linux Ctrl+Shift+X))。你将看到一个标题为“WSL: Ubuntu – 已安装”的部分,并且可以看到 WSL 端已安装的任何扩展。
重新加载后,系统还会提示你 pylint linter 未安装。Linters 用于显示源代码中的错误和警告。请继续选择“安装”。
现在,当你编辑代码时,你将获得丰富的颜色高亮和代码补全。
当你保存文件 (⌘S (Windows、Linux Ctrl+S)) 时,文件上会出现 lint 错误和警告。
调试
设置好工具后,让我们更进一步。通过单击行号左侧的边距,或将光标放在该行上并按下 F9,在 hello.py 的第 1 行设置断点。
现在,按下 F5 运行应用程序。系统将询问你如何运行应用程序,由于这是一个简单文件,只需选择“Python 文件”即可。
应用将启动,并命中断点。你可以检查变量、创建监视以及导航调用堆栈。
按下 F10 单步执行,你将在调试控制台中看到 print 语句的输出。
你可以获得 Visual Studio Code 的完整开发体验,使用安装在 WSL 中的 Linux 实例。
如果你想在 WSL 中打开另一个文件夹,请打开“文件”菜单并选择“打开文件夹”。你将看到一个用于 Linux 文件系统的简洁文件和文件夹导航器,而不是 Windows 文件系统。
如果要切换回 Windows,请选择“显示本地”选项,你将看到标准的 Windows 文件打开对话框。
结束 WSL 连接
你可以通过“文件”>“关闭远程连接”结束 WSL 会话并返回到本地运行 VS Code。
恭喜你
恭喜你,你已成功完成本教程!
接下来,了解其他远程开发扩展。
或者通过安装 Remote Development 扩展包获取所有扩展。