在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终端并完成安装。由于您正在设置一个完整的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打开当前文件夹。如果您使用的是Insiders版本的VS Code,您将需要运行'code-insiders .'
。
注意: 如果此命令不起作用,您可能需要重新启动终端,或者在安装时可能没有将VS Code添加到您的路径中。
你首先会看到一条关于“安装VS Code服务器”的消息(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端的任何扩展。
重新加载后,您还会收到提示,告知您 pylint linter 未安装。Linter 用于显示源代码中的错误和警告。请继续选择 安装。
现在,当你编辑代码时,你会获得丰富的颜色标注和自动补全功能。
当你保存文件时(⌘S (Windows, Linux Ctrl+S)),你会在文件上看到linting错误和警告。
调试
设置好工具后,让我们更进一步。通过在行号左侧的装订线点击或将光标放在行上并按F9来在hello.py的第1行设置断点。
现在,按下 F5 来运行你的应用程序。你将被询问如何运行应用程序,由于这是一个简单的文件,只需选择 Python File。
应用程序将启动,您将遇到断点。您可以检查变量、创建监视并导航调用堆栈。
按下 F10 来单步执行,你将在调试控制台中看到打印语句的输出。
您可以使用安装在WSL中的Linux实例,获得Visual Studio Code的完整开发体验。
如果你想在WSL中打开另一个文件夹,打开文件菜单并选择打开文件夹。你将获得一个用于Linux文件系统的最小化文件和文件夹导航器,而不是Windows文件系统。
如果你想切换回Windows,选择显示本地选项,你将获得标准的Windows文件打开对话框。
结束你的WSL连接
您可以在WSL中结束会话,并通过文件 > 关闭远程连接返回到本地运行VS Code。
恭喜
恭喜,您已成功完成本教程!
接下来,查看其他远程开发扩展。
或者通过安装 Remote Development 扩展包来获取所有功能。