人生苦短,不光要用 Python,还要在 VSCode 里用 | 原力计划

做者 | imbennyguophp

责编 | 胡巍巍
git

出品 | CSDN博客程序员

在程序员圈子里,Visual Studio Code(如下简称VSCode)能够说是目前最火的代码编辑器之一了。github

它是微软出品的一款可扩展的轻量级开源编辑器,而且支持全平台系统。这些特性使得VSCode颇受欢迎,这也使其成为了一个很棒的Python开发平台。算法

在本文中,你将学到如何在VSCode中进行高效的Python开发,其中包括:docker

  • 安装VSCode-安装插件让Python开发更便利编程

  • 编写一个简单的Python应用json

  • 学习如何在VSCode中运行和调试已有的Python程序设计模式

  • 在VSCode中使用Git和GitHub来管理代码框架

本文假设你已经熟悉了基本的Python开发,而且计算机上安装了某个版本的Python(Python2.七、Python3.6/七、Anaconda等)。

文中会提供Ubuntu和Windows系统上的运行截图和样例,但因为VSCode还能够在其余主流平台上运行,因此你可能会在实际操做中看到略微有些差别的UI界面,一些命令的键位可能也须要修改。

VSCode的安装与配置

在任何平台上安装VSCode都不是难事。微软提供了Windows,Mac和Linux平台上详尽的安装指引,而且每个月都会有更新以推出新特性或修复已知问题。这些均可以在VSCode官网上找到:

https://code.visualstudio.com

可能你会想,VSCode和那个庞大的Visual Studio名字这么像,它们会不会有什么关系呢?但其实,并无,哈哈。

VSCode默认支持多种编程语言,而且有着丰富的扩展。VSCode每个月更新,你能够在微软博客上随时关注更新的进展。微软甚至把代码开源在了GitHub上供全部开发者克隆仓库甚至贡献代码(暗示你们赶忙来提PR)。

VSCode的用户界面官方给出了详细的操做说明,以下图所示,在此再也不赘述。

为Python开发安装插件

正如上文中提到,VSCode能够经过自身良好的扩展性质来支持各类编程语言的开发。

Python插件使咱们能够更方便地在VSCode中进行Python开发,它有如下功能和特色:

  • 支持Python2.7和Python3.4+的Pyhon版本

  • 使用IntelliSense进行代码补全

  • 代码检查器

  • 对调试的支持

  • 代码段功能

  • 对单元测试的支持

  • 自动应用虚拟环境

  • 可在Jupyter环境和Jupyter Notebook中编辑代码

事实上,VSCode插件并不只是编程语言层面的,以下面这些:Keymaps能够改变VSCode的操做方式,让那些习惯使用Atom,Sublime Text,Emacs,Vim,Pycharm等其余编辑器的开发者更舒服;Themes能够定制用户界面外观,无论你是喜欢亮色、暗色或五彩斑斓的黑,它都能知足;Language提供了良好的本地化体验。

还有一些颇有用的插件推荐给你们:

GitLens提供了许多能够直接在编辑窗口中使用的Git特性,包括blame标注和仓库探索等;

Autosave能够经过菜单栏File–Auto Save开启,顾名思义,它会以固定的时间间隔保存你的代码,默认是1000毫秒(1秒),这个值是能够配置的;

Settings Sync可让你经过GitHub在多个VSCode安装中同步配置,若是你会在不一样的机器上使用VSCode,这么作可让你保持开发环境的一致性;

Docker插件能够当让你愉快地使用Docker工做,它帮助开发者编写dockerfile和docker-compose.yml,打包并部署项目,甚至为项目自动生成dockerfile。

固然了,你也能够本身发掘其余有趣有用的插件,欢迎和你们分享你的发现!

能够经过点击左边活动栏的插件图标来进行插件或主题的发现和安装。你能够经过关键词来搜索插件,用多种方式排序搜索结果,并快捷方便地安装插件。

对于本文中使用到的Python插件,你能够搜索Python字样,而后在特定项上点击install进行安装。

同理,你能够用这种方式安装其余上面提到的插件。

VSCode配置文件

VSCode经过 用户(user) 和 工做区(workspace) 设置实现高度可配置化。

用户设置是应用于全部VSCode实例的全局性设置,而工做区设置是应用于特定文件夹或项目的局部设置。工做区设置给VSCode提供了极大的灵活性,咱们在以后调出的都是工做区设置。

工做区设置以json格式保存在项目目录下.vscode文件夹中。

写个Python程序

让咱们从一个Python程序开始探索如何在VSCode中进行Python开发。你能够在VSCode中使用快捷键Ctrl+N来编辑一个新文件(也能够在菜单栏中选择File–New File)。

Tips:VSCode用户界面提供了命令盘(command palette)功能,使你能够手不离键盘就能搜索、执行各项命令。按下Ctrl+Shift+P打开命令盘,键入new file,按下回车,也能够编辑一个新文件。

不管用哪一种方法,你应该能够看到相似下面这样的窗口:

新文件打开后,就能够开始写代码啦。

咱们快速写一个埃拉托斯特尼筛法(用来寻找不超过一个数的全部质数)做为测试代码。从下面这两行开始:

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

你应该看到相似下面的场景:

等等,发生什么了?为何VSCode没有任何关键词高亮,格式自动调整等有用的东西?要它何用?

答案是,目前VSCode还不知道你在写什么。这个文字缓冲区叫作Untitled-1,若是你看看窗口右下角,你会发现写着Plain Text,也就是说VSCode还不知道你在写Python代码。

为了让Python插件发挥做用,咱们须要将文件存储为后缀为py的文件,如sieve.py。你能够经过菜单栏File–Save File,或者按下Ctrl+S,或在命令盘键入save file来作到这一点。VSCode看到py后缀就会将文件解释为Python代码。如今你的窗口应该长这样:

好多了有没有!VSCode自动按照Python语言从新肯定了格式,你能够在窗口左下角验证当前编程语言的正确性。

若是你同时安装了多个版本的Python(如Python2.7,Python3.x和Anaconda),你能够经过点击左下角的语言(这里的Python x.x.x)或在命令盘中选择select interpreter来切换Python解释器。VSCode默认用PEP8标准来格式化Python代码,但你也能够选用其余标准。

如今让咱们完成剩余筛法代码。为了能观察到IntelliSense发挥做用,请不要直接复制粘贴这段代码。亲手输入,你将看到下面的画面:

下面是埃拉托斯特尼筛法中“筛”这个部分的完整代码:

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

输入这段代码时,VSCode自动缩进了for和if下的语句,自动加上告终尾大括号,并为你提供输入建议。这就是IntelliSense的威力。

运行Python代码

既然写完了代码,咱们就能够运行它了。由于VSCode能够直接在编辑器里运行代码,因此咱们彻底不须要离开编辑器。按Ctrl+S保存文件,接着在编辑器窗口中点击鼠标右键,选择Run Python File in Terminal。

能够看见,窗口下方出现了Terminal选项卡,显示了代码的输出。

对Python代码检查器的支持

你可能在写代码的时候看见过一个弹出框,上面写着代码检查器不可用(Linting was not available)。你能够在弹出框中快速安装一个代码检查器,默认安装的是PyLint。VSCode也支持其余检查器,包括:Flake八、Mypy、Pydocstyle、Pep八、Prospector、Pyllama、Bandit等。

Python代码检查器页面有配置每一种检查器的详细资料。注意,代码检查器的选择是项目级别的工做区设置,而不是全局用户设置。

编辑一个已有的Python项目

在埃拉托斯特尼筛法的例子中,你建立了一个单独的Python文件。这做为例子来说很合适,但一般你会建立更大的项目,并在其上工做一段时间。一个典型的建立新项目的工做流程以下:

  • 建立一个存放项目的文件夹(其中可能包含一个新的GitHub项目)

  • 切换到新文件夹

  • 用命令代码建立一个初始Python代码文件

在Python项目中使用VSCode会给你带来更多精彩的功能,让咱们看看VSCode是怎样对付大型工程的。

早在上个世纪我仍是一名年轻的程序员时,我用调度场算法写过一个将算式解析为中缀表达式的计算器程序。为了展现VSCode中项目专属的特性,我将算法重构成了Python的一个算式求值库(https://github.com/JFincher42/PyEval),你们能够随意克隆至本地以进行后面的操做。

本地文件夹建好后,你能够经过VSCode快捷地打开整个文件夹,我比较喜欢下面这种方式:

cd /path/to/project
code .

当这样打开时,VSCode将检测到并开启任何项目中存在的virtualenv、pipenv或conda虚拟环境,你甚至都不用本身手动去启动虚拟环境!如下几种方式均可以在用户界面中打开一个文件夹:菜单栏中点击File–Open Folder;按下快捷键Ctrl+K或Ctrl+O;在命令盘中键入file:open folder。

个人公式求值库项目打开后看起来是这样的:

当VSCode打开文件夹时,它同时也会打开你最近打开的文件(这个行为是可配置的)。你能够打开、编辑、运行、调试文件列表中的任何文件。左侧活动区的探索者视图向你展现了文件夹中的全部文件,并告诉你在当前打开的选项卡中有多少编辑了但尚未保存的文件。

对测试的支持

若是当前环境安装了测试框架,VSCode能够自动识别已有的用测试框架编写的测试代码。我用unittest为个人公式求值库写了一个单元测试,你们能够用它做为例子来学习。

你能够在项目中的任何一个文件中右键选择Run Current Unit Test File来运行已有的单元测试。VSCode会询问你使用哪一种测试框架、项目中测试代码存放的路径,以及测试文件的命名方式。

这些设置都将做为工做去设置被保存在项目.vscode文件夹下的settings.json文件中,你也能够在那里更改这些设置。对于个人公式求值项目,咱们选择用unittest框架,测试代码在当前目录下,测试代码命名为*_test.py。

一旦配置好了测试框架、找到了测试代码,你就能够点击状态栏的Run Tests来运行全部的测试:

你甚至能够经过点击状态栏的Run Tests,而后选择Run Unit Test Method来运行单个测试。这样咱们就能够单独运行失败的测例,可以节省一大笔时间!测试结果输出在Output选项卡中。

对调试的支持

即便VSCode是个编辑器,但在其中调试代码也是可行的。VSCode提供了许多好的代码调试器所拥有的特性:

  • 自动变量追踪

  • watch表达式

  • 断点

  • 调用栈检查

它们做为调试视图的一部分被显示在活动栏中:

调试器能够控制Python应用在内置终端或远程终端实例上运行。它能够链接一个正在运行的Python实例,甚至能够调试Django和Flask应用。

用VSCode调试单个Python文件就和按F5启动调试器同样简单。你能够按F10和F11来跳出或进入函数,按Shift+F5退出调试器。按F9或单击编辑框左侧区域来设置断点。

当你要开始调试像Django和Flask应用这种更复杂的项目时,须要进行调试配置。在调试视图中,选择配置下拉菜单中的添加配置,而后选择Python:

上面的配置存储在了.vscode/launch.json中,你能够针对像Django、Flask这种特殊应用的设立专门的配置。

你甚至能够远程调试,或是调试Jinja模板。这一切只需在配置下拉菜单中选择合适的配置项便可。

Git集成

VSCode内置版本控制机制,并自带对Git和GitHub的支持,你也能够安装插件以支持其余版本控制软件。版本控制视图中提供了各类版本控制功能:

若是你的项目目录包含.git文件夹,那么VSCode自动开启完整的Git和GitHub支持。你能够进行的操做包括:

  • 提交文件到Git

  • 向远程仓库推送更新,或从远程仓库拉更新

  • 切换已有分支或新建分支

  • 查看并解决合并冲突

  • 查看代码差异

全部这些事均可以直接在VSCode用户界面中完成:

VSCode也能识别来自编辑器外的文件内容改变并作出反应。

在VSCode中提交最近的代码更改是很方便直接的。在版本控制视图中,被修改的文件用M标记,新的未追踪文件用U标记。鼠标悬浮于文件上,点击加号(+)来添加更改。在顶端输入提交信息,最后点击对勾来提交这些更改。

你也能够在VSCode中将本地提交推至GitHub。选择版本控制视图中的Sync,点击状态栏中的Synchronize Changes便可。

结论

VSCode是目前最棒的通用编辑器,也是Python开发者的绝佳选择。经过这篇文章你学到了:

  • 如何安装VSCode-如何查找、安装插件来开启对Python的支持

  • 如何用VSCode更轻松地编写Python程序

  • 如何用VSCode运行、调试Python代码

  • 如何在VSCode中使用Git和GitHub

VSCode已经成为了我进行Python甚至其余项目开发时最经常使用的编辑器,推荐给你,但愿你也能够试试看~

原文连接:https://blog.csdn.net/bigbennyguo/article/details/104704023

热 文 推 荐

  我去,同事竟然用明文存储密码!!!

低学历、文科出身,我如何从月薪不到 3000 逆袭为大厂高薪程序员?

智能合约编写之 Solidity 的设计模式

40万亿“新基建”来了!程序员的新翻身机会终于也来了!

增量学习不仅有finetune,三星AI提增量式少样本目标检测算法 | CVPR 2020

还不知道 AWS 是什么?这 11 个重点带你认识 AWS !

你点的每一个“在看”,我都认真当成了喜欢