geekdoc-python-zh/docs/realpython/python-development-visual-s...

22 KiB
Raw Blame History

Visual Studio 代码中的 Python 开发

原文:https://realpython.com/python-development-visual-studio-code/

*立即观看**本教程有真实 Python 团队创建的相关视频课程。配合文字教程一起看,加深理解:Visual Studio 代码中的 Python 开发(安装指南)

对程序员来说最酷的代码编辑器之一, Visual Studio Code ,是一个开源的、可扩展的、轻量级的编辑器,可以在所有平台上使用。正是这些品质使得来自微软的 Visual Studio 代码非常受欢迎,并且是 Python 开发的一个很好的平台。

在本文中,您将了解 Visual Studio 代码中的 Python 开发,包括如何:

  • 安装 Visual Studio 代码
  • 发现并安装使 Python 开发变得容易的扩展
  • 编写一个简单的 Python 应用程序
  • 学习如何在 VS 代码中运行和调试现有的 Python 程序
  • 将 Visual Studio 代码连接到 Git将 GitHub 连接到与世界分享您的代码

我们假设您熟悉 Python 开发,并且已经在您的系统上安装了某种形式的 Python(Python 2.7、Python 3.6/3.7、Anaconda 或其他)。提供了 Ubuntu 和 Windows 的截图和演示。因为 Visual Studio 代码在所有主要平台上运行,所以您可能会看到稍有不同的 UI 元素,并且可能需要修改某些命令。

如果你已经有了一个基本的 VS 代码设置,并且你希望比本教程中的目标更深入,你可能想要探索 VS 代码中的一些高级特性。

免费奖励: 掌握 Python 的 5 个想法,这是一个面向 Python 开发者的免费课程,向您展示将 Python 技能提升到下一个水平所需的路线图和心态。

为 Python 开发安装和配置 Visual Studio 代码

在任何平台上安装 Visual Studio 代码都是非常容易的。针对 WindowsMacLinux 的完整说明是可用的,编辑器每月更新新功能和错误修复。您可以在 Visual Studio 代码网站找到所有内容:

Visual Studio Code Web Site

如果您想知道Visual Studio 代码(或简称为 VS 代码)除了与它更大的基于 Windows 的同名代码 Visual Studio 共享一个名称之外,几乎什么都不共享。

**注意:**要了解如何在 Windows 机器上设置作为完整 Python 编码环境一部分的 VS 代码,请查看本综合指南

Visual Studio 代码具有对多种语言的内置支持以及一个扩展模型该模型具有丰富的支持其他语言的生态系统。VS 代码每月更新一次,你可以在微软 Python 博客保持最新。微软甚至让任何人都可以克隆和贡献 VS Code GitHub repo 。(提示公关洪水。)

VS 代码 UI 有很好的文档记录,所以我在这里不再赘述:

Visual Studio Code Welcome ScreenRemove ads

Python 开发的扩展

如上所述VS 代码通过一个记录良好的扩展模型支持多种编程语言的开发。 Python 扩展支持在 Visual Studio 代码中进行 Python 开发,具有以下特性:

Installing the Python extension for VSCode

Visual Studio 代码扩展不仅仅涵盖编程语言功能:

  • Keymaps 让已经熟悉 Atom、 Sublime TextEmacsVimPyCharm 或其他环境的用户有宾至如归的感觉。

  • 无论你喜欢在明亮、黑暗还是更多彩的环境中编码,都可以定制用户界面。

  • 语言包提供本地化的体验。

以下是一些我觉得有用的其他扩展和设置:

  • GitLens 直接在你的编辑窗口中提供了大量有用的 Git 特性,包括责备注释和存储库探索特性。

  • 从菜单中选择File, Auto Save即可轻松打开自动保存。默认延迟时间为 1000 毫秒,也可以通过配置

  • 设置同步允许你使用 GitHub 跨不同安装同步你的 VS 代码设置。如果您在不同的机器上工作,这有助于保持环境的一致性。

  • Docker 让你快速方便地使用 Docker帮助作者Dockerfiledocker-compose.yml,打包和部署你的项目,甚至为你的项目生成合适的 Docker 文件。

当然,在使用 VS 代码时,您可能会发现其他有用的扩展。请在评论分享你的发现和设定!

点击活动栏上的扩展图标可以发现和安装新的扩展和主题。您可以使用关键字搜索扩展,以多种方式对结果进行排序,并快速轻松地安装扩展。对于本文,通过在活动栏上的扩展项中键入python,并点击安装来安装 Python 扩展:

Finding the VSCode Marketplace in the UI

您可以用同样的方式找到并安装上面提到的任何扩展。

Visual Studio 代码配置文件

值得一提的是Visual Studio 代码通过用户和工作区设置是高度可配置的。

用户设置是所有 Visual Studio 代码实例的全局设置,而工作区设置是特定文件夹或项目工作区的本地设置。工作区设置为 VS 代码提供了极大的灵活性,在本文中我一直强调工作区设置。工作空间设置作为.json文件存储在项目工作空间的本地文件夹.vscode中。

启动一个新的 Python 程序

让我们从一个新的 Python 程序开始探索 Visual Studio 代码中的 Python 开发。在 VS 代码中,键入 Ctrl + N 打开一个新文件。(您也可以从菜单中选择文件,新建。)

**注意:**Visual Studio 代码 UI 提供了命令调板,从这里可以搜索和执行任何命令,而无需离开键盘。使用Ctrl+Shift+P打开命令面板,键入File: New File,点击 Enter 打开一个新文件。

无论您如何到达那里,您都应该看到一个类似于下面的 VS 代码窗口:

Creating a new file in VSCode

打开新文件后,您就可以开始输入代码了。

Remove ads

输入 Python 代码

对于我们的测试代码,让我们快速编码厄拉多塞的筛子(查找所有小于给定数字的素数)。开始在刚刚打开的新选项卡中键入以下代码:

sieve = [True] * 101
for i in range(2, 100):

您应该会看到类似这样的内容:

Unformatted code in VSCode

等等,怎么回事?为什么 Visual Studio 代码不做任何关键字突出显示、任何自动格式化或任何真正有帮助的事情?怎么回事?

答案是现在VS 代码不知道它在处理什么样的文件。这个缓冲区叫做Untitled-1,如果你看窗口的右下角,你会看到文字纯文本

要激活 Python 扩展,将文件保存为sieve.py(从菜单中选择文件,保存,从命令面板中选择文件:保存文件,或者只使用 Ctrl + S】)。VS 代码会看到.py扩展名,并正确地将文件解释为 Python 代码。现在你的窗口应该是这样的:

Properly formatted Python code in VSCode

那就好多了VS 代码自动将文件重新格式化为 Python您可以通过检查左下角的语言模式来验证这一点。

如果您有多个 Python 安装(如 Python 2.7、Python 3.x 或 Anaconda),您可以通过单击语言模式指示器或从命令面板中选择 Python: Select Interpreter 来更改 Python 解释器 VS 代码使用的解释器。VS 代码默认支持使用pep8格式化,但是如果你愿意,你可以选择black或者yapf

https://player.vimeo.com/video/487453125?background=1

现在让我们添加剩余的筛子代码。要查看 IntelliSense 的工作情况,请直接键入此代码,而不是剪切和粘贴,您应该会看到如下内容:

Typing the Sieve of Eratosthenes Python code

这是厄拉多塞基本筛子的完整代码:

sieve = [True] * 101
for i in range(2, 100):
    if sieve[i]:
        print(i)
        for j in range(i*i, 100, i):
            sieve[j] = False

当您键入这段代码时VS Code 会自动为您适当地缩进forif语句下的行,添加右括号,并为您提出建议。这就是智能感知的强大之处。

运行 Python 代码

现在代码已经完成,您可以运行它了。没有必要离开编辑器来做这件事:Visual Studio 代码可以直接在编辑器中运行这个程序。保存文件(使用 Ctrl + S ),然后在编辑器窗口点击右键,选择在终端运行 Python 文件:

https://player.vimeo.com/video/487465969?background=1

您应该会看到终端面板出现在窗口的底部,并显示您的代码输出。

Remove ads

Python 林挺支持

您可能在输入时看到弹出窗口,提示林挺不在。您可以从弹出窗口快速安装林挺支持,默认为 PyLint 。VS 代码也支持其他的 linters。以下是撰写本文时的完整列表:

  • pylint
  • flake8
  • mypy
  • pydocstyle
  • pep8
  • prospector
  • pyllama
  • bandit

Python 林挺页面有关于如何设置每个 linter 的完整细节。

注意:linter 的选择是项目工作区设置,不是全局用户设置。

编辑现有的 Python 项目

在厄拉多塞筛子的例子中,您创建了一个 Python 文件。这是一个很好的例子,但是很多时候,你会创建更大的项目,并在更长的时间内工作。典型的新项目工作流可能如下所示:

  • 创建一个文件夹来存放项目(可能包括一个新的 GitHub 项目)
  • 转到新文件夹
  • 使用命令code filename.py创建初始 Python 代码

在一个 Python 项目中使用 Visual Studio 代码(相对于单个 Python 文件而言)会带来更多的功能,让 VS 代码真正大放异彩。让我们看看它是如何与一个更大的项目一起工作的。

在上一个千年后期,当我还是一个年轻得多的程序员时,我编写了一个计算器程序,使用 Edsger Dijkstra 的调车场算法的改编,解析用中缀符号编写的方程。

为了展示 Visual Studio 代码以项目为中心的特性,我开始重新创建调车场算法,作为 Python 中的方程求值库。要继续跟进,请随意在本地克隆 repo。

一旦在本地创建了文件夹,您就可以在 VS 代码中快速打开整个文件夹。我的首选方法(如上所述)修改如下,因为我已经创建了文件夹和基本文件:

cd /path/to/project
code .

VS 代码理解并将使用以这种方式打开时看到的任何 virtualenvpipenvconda 环境。你甚至不需要先启动虚拟环境!你甚至可以从 UI 中打开一个文件夹,使用文件,从菜单中打开文件夹,从命令面板中打开文件夹 Ctrl + K Ctrl + O ,或者文件:打开文件夹

对于我的方程式评估库项目,我看到的是:

PyEval folder open in VSCode

当 Visual Studio 代码打开文件夹时,它也会打开您上次打开的文件。(这是可配置的。)您可以打开、编辑、运行和调试列出的任何文件。左侧活动栏中的资源管理器视图提供了文件夹中所有文件的视图,并显示了当前选项卡集中有多少未保存的文件。

测试支架

VS 代码可以自动识别在unittest框架中编写的现有 Python 测试,或者 pytestNose框架,如果这些框架安装在当前环境中的话。我有一个用unittest编写的单元测试,用于等式评估库,您可以在这个例子中使用它。

要运行您现有的单元测试,从项目中的任何 Python 文件中,右键单击并选择 Run Current Unit Test File 。您将被提示指定测试框架,在项目中的什么地方搜索测试,以及您的测试使用的文件名模式。

所有这些都作为工作空间设置保存在您的本地.vscode/settings.json文件中,并且可以在那里进行修改。对于这个方程项目,您选择unittest、当前文件夹和模式*_test.py

一旦建立了测试框架并发现了测试,您就可以通过点击状态栏上的 Run Tests 并从命令面板中选择一个选项来运行您的所有测试:

https://player.vimeo.com/video/487454306?background=1

您甚至可以通过在 VS 代码中打开测试文件,点击状态栏上的 Run Tests ,并选择 Run Unit Test Method… 和要运行的特定测试来运行单个测试。这使得解决单个测试失败并只重新运行失败的测试变得微不足道,这是一个巨大的时间节省!测试结果显示在 Python 测试日志下的输出窗格中。

Remove ads

调试支持

即使 VS 代码是一个代码编辑器,直接在 VS 代码中调试 Python 也是可能的。VS 代码提供了许多您期望从一个好的代码调试器中得到的特性,包括:

  • 自动变量跟踪
  • 观察表情
  • 断点
  • 调用堆栈检查

您可以在活动栏上的调试视图中看到它们:

Finding the Debug UI in VSCode

调试器可以控制在内置终端或外部终端实例中运行的 Python 应用程序。它可以附加到已经运行的 Python 实例,甚至可以调试 DjangoFlask 应用。

调试单个 Python 文件中的代码就像使用 F5 启动调试器一样简单。使用 F10F11 分别单步执行和进入函数,使用 Shift + F5 退出调试器。使用 F9 设置断点,或使用鼠标点击编辑器窗口的左边空白处。

在开始调试更复杂的项目之前,包括 Django 或 Flask 应用程序,您需要设置并选择一个调试配置。设置调试配置相对简单。从调试视图中,选择配置下拉菜单,然后选择添加配置,选择 Python :

Adding a new debug configuration to VSCode

Visual Studio 代码将在当前文件夹下创建一个名为.vscode/launch.json的调试配置文件,它允许您设置特定的 Python 配置,以及用于调试特定应用的设置,如 Django 和 Flask。

您甚至可以执行远程调试,并调试 Jinja 和 Django 模板。在编辑器中关闭launch.json文件,并从配置下拉列表中为您的应用选择合适的配置。

Git 集成

VS 代码内置了对源代码控制管理的支持,并附带了对 Git 和 GitHub 的支持。您可以在 VS 代码中安装对其他 SCM 的支持,并一起使用它们。可以从源代码控制视图中访问源代码控制:

Source Control UI in VSCode

如果你的项目文件夹包含一个.git文件夹VS Code 会自动打开全部的 Git/GitHub 功能。以下是您可以执行的许多任务中的一部分:

所有这些功能都可以直接从 VS 代码 UI 中获得:

Git Commands in VSCode

VS 代码还会识别在编辑器外所做的更改,并表现出适当的行为。

在 VS 代码中提交最近的更改是一个相当简单的过程。修改过的文件显示在源代码控制视图中,带有一个 M 标记,而新的未被跟踪的文件用一个 U 标记。将鼠标悬停在文件上,然后单击加号( + ),准备好您的更改。在视图顶部添加提交消息,然后单击复选标记提交更改:

Committing changes in VSCode

您也可以从 VS 代码内部将本地提交推送到 GitHub。从源代码控制视图菜单中选择同步,或者点击分支指示器旁边状态栏上的同步变更

Remove ads

结论

Visual Studio 代码是最酷的通用编辑器之一,也是 Python 开发的绝佳候选。在本文中,您了解了:

  • 如何在任何平台上安装 VS 代码
  • 如何找到并安装扩展来启用 Python 特有的特性
  • VS 代码如何让编写简单的 Python 应用程序变得更容易
  • 如何在 VS 代码中运行和调试现有的 Python 程序
  • 如何使用 VS 代码中的 Git 和 GitHub 库

Visual Studio 代码已经成为我的 Python 和其他任务的默认编辑器,我希望您也给它一个机会成为您的编辑器。

如果您有任何问题或意见请在下面的评论中联系我们。Visual Studio 代码网站上的信息比我们在这里介绍的要多得多。

作者感谢微软 Visual Studio 代码团队的丹·泰勒(Dan Taylor)为本文付出的时间和宝贵投入。

立即观看**本教程有真实 Python 团队创建的相关视频课程。配合文字教程一起看,加深理解:Visual Studio 代码中的 Python 开发(安装指南)******