参加你附近的 ,了解 VS Code 中的 AI 辅助开发。

在 WSL 中进行远程开发

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

先决条件

你需要安装 Visual Studio Code

安装扩展

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

安装 WSL 扩展

WSL extension

先决条件检查

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

Remote Status bar item

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

WSL extension commands

启用 WSL

适用于 Linux 的 Windows 子系统 (WSL) 是 Windows 10 上的一个可选功能。你可以通过 Windows 功能对话框或 PowerShell 启用它。

Windows 功能对话框

在 Windows 搜索栏中,输入“功能”以调出“启用或关闭 Windows 功能”对话框。向下滚动并勾选“适用于 Linux 的 Windows 子系统”。

Turn Windows features on and off dialog

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

PowerShell

如果你愿意,可以以管理员身份打开 PowerShell 并输入

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

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

PowerShell prompt to restart

检查 WSL

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

WSL check

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

安装 Linux 发行版

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

select Ubuntu distro

选择“安装”。

install Ubuntu

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

Linux terminal

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$ mount

这种模式的问题是 Python 运行时、pip 或任何 conda 包都没有安装在 Windows 上。

no Python on 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 时可能没有将其添加到路径中。

launch 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 的服务器。

installing vscode server

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

show hello.py Linux path

集成终端

运行终端 > 新终端 (⌃` (Windows, Linux Ctrl+`)) 以打开一个新的终端实例。

new terminal in WSL

你将在 WSL 中启动一个 bash shell 的新实例,同样是从 Windows 上运行的 VS Code 中启动。

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

WSL extension Status bar

编辑和调试

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

点击 hello.py 以打开它进行编辑。系统会提示你安装扩展的建议,在这种情况下是安装 Microsoft Python 扩展,这将为你提供丰富的编辑和调试体验。继续选择“安装”,如果提示则重新加载。

Python extension recommendation

为了证明扩展已安装在 WSL 中,再次打开扩展视图 (⇧⌘X (Windows, Linux Ctrl+Shift+X))。你将看到一个名为“WSL: Ubuntu – 已安装”的部分,你可以在其中看到安装在 WSL 端的任何扩展。

WSL installed extensions

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

pylint not installed notification

现在,当你编辑代码时,你将获得丰富的着色和自动补全。

Python IntelliSense

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

pylint error

调试

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

set breakpoint

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

select debug configuration

应用将启动,你将命中断点。你可以检查变量、创建监视和导航调用堆栈。

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

VS Code debug view

你将获得 Visual Studio Code 的完整开发体验,使用安装在 WSL 中的 Linux 实例。

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

open folder navigator

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

结束 WSL 连接

你可以通过“文件”>“关闭远程连接”来结束 WSL 中的会话并返回到本地运行 VS Code。

恭喜

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

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

或者通过安装远程开发扩展包获取所有这些扩展。

© . This site is unofficial and not affiliated with Microsoft.