Py学习  »  Python

在VS Code中进行Python开发

Python程序员 • 5 年前 • 520 次点击  


目录表


  • 安装和配置Visual Studio Code用于Python开发

        o 用于Python开发的扩展

        o Visual StudioCode配置文件

  • 启动一个新的Python程序

        o输入Python代码

        o运行Python代码

        o Python Linting支持

  • 编辑现有Python项目

  • 测试支持

  • 调试支持

  • git集成

  • 结论


程序员可以使用的最酷的代码编辑器之一——Visual Studio Code[1]——是一个开源的、可扩展的、轻量级的编辑器,它可以在所有平台上使用。正是这些特性使得Microsoft[2]的Visual Studio Code非常受欢迎,并且是一个很好的Python开发平台。


在本文中,你将了解在Visual Studio Code中进行Python开发,包括怎样:


  • 安装Visual Studio Code

  • 发现并安装使Python开发变得容易的扩展

  • 编写一个简单的Python应用程序

  • 学习如何在VS Code中运行和调试现有Python程序

  • 将Visual Studio Code连接到Git和GitHub,与世界分享你的代码


我们假设你熟悉Python开发,并且已经在系统上安装了某种形式的Python (Python 2.7、Python 3.6/3.7、Anaconda或其他)。确保你的Ubuntu和Windows的屏幕截图和演示程序都可用。由于Visual Studio Code可以运行在所有主要平台上,你可能会看到略有不同的UI元素,可能需要修改某些命令。


安装并配置Visual Studio Code用于Python开发


在任何平台上安装Visual Studio Code都是非常容易[3]的。Windows[4]、Mac[5]和Linux[6]都有完整的安装教程,编辑器每月更新一次,提供新特性和bug修复。你可以在Visual Studio Code网站[7]上找到所有信息:


你可能会疑惑,Visual Studio Code(简称VS Code)除了与其基于windows的大型同名软件Visual Studio[8]名字相同之外,几乎没有其他相同之处。


Visual Studio Code除具有对多种语言的内置支持之外,还具有对其他语言丰富的生态系统支持的扩展模型。VS  Code每月更新一次,你可以在Microsoft Python博客[9]上了解最新情况。微软甚至公开VS Code GitHub repo[10]源来允许任何人克隆和贡献代码。(Cue the PR flood.)


VS Code用户界面[11]有很好的文档说明,所以我就不在这里赘述

用于Python开发的扩展


如上所述,VS Code通过良好文档化的扩展模型[12]支持多种编程语言的开发。Python扩展[13]允许我们可以在Visual Studio Code中进行Python开发,它具有以下特性:

  • 支持Python 3.4及以上版本,以及Python 2.7

  • 使用IntelliSense[14](智能感知)补全代码

  • Linting(代码检查)[15]

  • 调试支持[16]

  • 代码片段[17]

  • 单元测试支持[18]

  • conda和虚拟环境[19]的自动使用

  • Jupyter环境[20]Jupyter笔记本[21]中进行代码编辑



Visual Studio Code扩展不仅包括编程语言功能:

  • Keymaps[22]让已经熟悉Atom、Sublime Text[23]Emacs[24]Vim[25]、PyCharm或其他环境的用户感到宾至如归。

  • Themes[26]允许自定义UI,无论你喜欢在浅色、深色或其他更丰富多彩的环境中编写代码。

  • Language packs[27]提供本地化体验。


下面是一些我发现的有用的扩展和设置:

  • GitLens[28]在你的编辑窗口中提供了大量有用的Git特性,包括blame annotations  和repository exploration特性。

  • 自动保存是很容易开启的,你可以从菜单选择File,Auto Save来开启。默认延迟时间是1000毫秒,这也是可配置[29]的。

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

  • Docker[31]让你可以快速、轻松地使用Docker进行工作(它帮助作者生成了DockerfileDocker –compose.yml文件),打包和部署项目,甚至为你的项目生成合适的Docker文件。


当然,在使用VS Code时,你会发现其他有用的扩展。请在评论区[32]分享你的发现和设置!


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

你可以以相同的方式查找并安装上面提到的任何扩展。


Visual Studio Code配置文件


值得一提的是,Visual Studio Code可以通过user and workspace settings[33](用户和工作区设置)进行高度配置。


用户设置是跨所有Visual Studio Code实例的全局设置,而工作区设置是特定文件夹或项目工作区的本地设置。工作区设置为VS Code提供了极大的灵活性,在本文中我将始终调用工作区设置。工作区设置以.json文件的形式存储在名为.vscode的项目工作区本地文件夹中。


开始一个新的Python程序


让我们从一个新的Python程序开始探索Visual Studio Code中的Python开发。在VS Code中,按下∧Ctrl+N打开一个新文件。(也可以从菜单中选择File, New来打开)


注意:Visual Studio Code UI提供了命令面板[34],你可以在其中搜索和执行任何命令,而不需要离开键盘。使用∧Ctrl+Shift+P打开命令面板,输入File: New File,然后按Enter键打开一个新文件。


无论你如何打开一个新文件的,你都会看到一个VS Code窗口,它看起来类似于下面的图:

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


输入Python代码


对于我们的测试代码,让我们快速编写Sieve of Eratosthenes[35] 项目(它查找所有小于给定数字的素数)。在刚刚打开的新选项卡中输入以下代码:你会看到类似于这样的结果:

等等,发生了什么?为什么Visual Studio Code没有进行任何关键字高亮显示、自动格式化或其他有用的事情呢?它做了什么?


答案是,现在VS Code还不知道它处理的是哪种文件。这个缓冲区名为Untitled-1,在窗口的右下角查看,你会看到Plain Text 字样。


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

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


如果你安装了多个Python版本 (如Python 2.7、Python 3或者Anaconda)。你可以通过单击语言模式指示器或从命令面板中选择Python: Select Interpreter,来更改VS Code默认使用哪种Python解释器。VS Code默认支持使用pep8进行格式化[36],你也可以选择blackyapf

现在我们来添加Sieve代码的其余部分。要查看IntelliSense是否在工作,直接输入这段代码,不能剪切和粘贴,你会看到如下所示:

下面是一个基本的Sieve of Eratosthenes的完整代码:

当你输入这段代码时,VS Code会自动缩进forif语句下面的行,添加结束括号,并为你提供建议。这就是IntelliSense为你带来的力量。


运行Python代码


现在代码已经完成,你可以运行它了。不需要离开编辑器就可以做到这一点:Visual Studio Code可以直接在编辑器中运行这个程序。保存文件(使用∧Ctrl+S),然后在编辑器窗口右键单击,选择Run Python file in Terminal :

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


Python Linting支持


你在输入时可能会看到一个弹出窗口,提示无法使用linting。你可以从该弹出窗口中快速安装linting支持,它默认为PyLint。VS Code还支持其他linter。以下是撰写本文时可用的完整列表:

  • pylint

  • flake8

  • mypy

  • pydocstyle

  • pep8

  • prospector

  • pyllama

  • bandit


Python linting页面[37]有关于如何设置每个linter的完整详细信息。

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


编辑现有Python项目


在Sieve of Eratosthenes示例中,你创建了一个Python文件。作为一个例子这很不错,但是很多时候,当你需要创建大型项目,并在很长的一段时间内要在它上面进行开发。一个典型的新项目工作流程可能是这样的:

  • 创建一个文件夹来保存项目(其中可能包括一个新的GitHub项目)

  • 切换到新文件夹

  • 使用命令code file .py创建初始Python代码


在Python项目上使用Visual Studio Code (而不是单个Python文件)可以提供更多的功能,可以让VS Code发挥它的特长。我们来看看它是如何处理一个大型项目的。


在前几年的后期,当我还是一个很年轻的程序员时,我编写了一个计算器程序,它使用Edsger Dijkstra的调度场算法(shunting yard algorithm)[38]适配来解析用中缀表示法编写的等式。


为了演示Visual Studio Code以项目为中心的特性,我开始在Python中将调度场算法(shunting yard algorithm)重新创建为一个Python等式计算库[39]。要继续后续操作,请随意将它从repo克隆到本地。


在本地创建文件夹后,你可以在VS Code中快速打开整个文件夹。我喜欢的方法(如上所述)修改如下,因为我已经创建了文件夹和基本文件:

VS Code理解并将使用以这种方式打开时它读取到的任何virtualenv[40]、pipenv[41]或conda[42]环境。你甚至不需要一开始就启动虚拟环境!你甚至可以从用户界面打开文件夹,从菜单中使用 File,Open Folder 打开文件夹,或使用快捷键∧Ctrl+K∧Ctrl+O从键盘打开文件夹,或者从命令面板使用File: Open Folder打开。


对于我的等式计算库项目,以下是我将看到的:

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


测试支持


VS Code可以自动识别在unittest框架、pytestNose框架中编写的现有Python测试[43](如果这些框架已经安装在当前环境中)。我在unittest中为等式计算库编写了一个单元测试[44],你可以在本例中使用它。


要运行现有的单元测试,可以在项目中的任何Python文件中右键单击并选择Run Current Unit Test File。系统会提示你指定测试框架、在项目中搜索测试的位置以及测试使用的文件名模式。


所有这些都会作为工作区设置保存为本地.vscode/settings.json文件,你也可以在此处进行修改。对于这个等式项目,你选择unittest、当前文件夹和*_test.py模式就好。


一旦设置好测试框架并且编辑器发现了测试,你可以在状态栏上单击Run Tests 并从命令面板中选择一个选项来运行所有的测试:

你甚至可以通过在VS Code中打开测试文件,单击状态栏上的Run Tests,并选择Run Unit Test Method…和要运行的特定测试来运行单个测试。这使得定位单个的测试失败和重新运行失败的测试变得非常简单,也是一个很棒的节省时间的方法!测试结果显示在Python Test Log下的Output 窗口中。


调试支持


虽然VS Code是一个代码编辑器,但是在VS Code中直接调试Python[45]也是可以的。VS Code提供了许多你所希望的好的代码调试器具有的特性,包括:

  • 自动变量跟踪

  • 监视表达式

  • 断点

  • 调用栈检查


你可以在活动栏的Debug 视图中看到它们:

调试器可以控制在内置终端或外部终端实例中运行Python应用程序。它也可以附加到已经运行的Python实例上,甚至可以调试Django[46]和Flask[47]应用程序。


在单个Python文件中调试代码与使用F5启动调试器一样简单。使用F10F11可以分别跳出和进入函数,使用Shift+F5退出调试器。可以使用F9设置断点,也可以使用鼠标在编辑器窗口的左侧空白处单击来设置。


在开始调试更复杂的项目(包括Django或Flask应用程序)之前,你需要先进行设置,然后选择调试配置。设置调试配置相对简单。在Debug 视图中,选择Configuration下拉菜单,然后点击Add Configuration,并选择Python 

:

Visual Studio Code将在当前文件夹下创建一个名为 .vscode/launch.json的调试配置文件,它允许你设置特定的Python配置[48]以及调试特定应用程序[49](如Django和Flask)的设置。


你甚至可以执行远程调试,以及调试JinjaDjango模板。关闭编辑器中的launch.json文件,然后从Configuration 下拉菜单中为你的应用程序选择合适的配置。


Git集成


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

如果你的项目文件夹包含一个.git文件夹,VS Code会自动打开Git/GitHub[51]的全部功能。以下是一些你可以完成的任务:

  • 将文件提交[52]到Git

  • 远程repos[53]推送更改和提取更改

  • 检查现有的或创建新的分支和标记[54]

  • 查看并解决合并冲突[55]

  • 查看不同[56]


所有这些功能都可以直接从VS Code用户界面中调用:

VS Code还能识别在编辑器之外所做的更改,并正确处理。


在VS Code中提交你最近的更改是一个相当简单的过程。在Source Control 视图中,修改后的文件显示为M标记,而未跟踪的新文件显示为标记。将鼠标悬停在文件上,然后单击加号(+),就可以看到你的更改。在视图顶部添加提交消息,然后单击复选框提交更改:

你还可以在VS Code中向GitHub推送本地提交。从“Source Control 视图”菜单中选择“Sync(同步)”,或者单击分支指示器旁边的状态栏[57]上的“Synchronize Changes (同步更改)”。


结论


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

  • 如何在任何平台上安装VS Code

  • 如何查找和安装扩展来支持Python特有的特性

  • VS Code如何让编写一个简单的Python应用程序变得更容易

  • 如何在VS Code中运行和调试现有Python程序

  • 如何在VS Code中使用Git和GitHub存储库


Visual Studio Code已经成为我开发Python和处理其他任务的默认编辑器,我希望你能给它一个机会,让它也成为你的编辑器。


如果你有任何问题或意见,请在下面的评论区留言。Visual Studio Code网站[58]上还有很多我们这里没有介绍到的信息。


作者在此感谢微软Visual Studio Code团队的Dan Taylor[59]为本文所花费的时间和提供的宝贵信息。


相关链接:

[1]——https://code.visualstudio.com/docs 

[2]——https://azure.com/python 

[3]——https://code.visualstudio.com/docs/setup/setup-overview 

[4]——https://code.visualstudio.com/docs/setup/windows 

[5]——https://code.visualstudio.com/docs/setup/mac 

[6]——https://code.visualstudio.com/docs/setup/linux 

(字数限制,其他链接未列出........)



英文原文:https://realpython.com/python-development-visual-studio-code/  
 译者:忧郁的红秋裤  



今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/nTbAMo5o1d
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/28854
 
520 次点击