使用 VS Code 来开发和调试 Python 程序

威尔we
• 阅读 1248

Visual Studio Code(简称 VSCode)是微软出品的一款支持多种语言的免费 IDE(集成开发环境)。VSCode 轻量而强大,支持 Windows、macOS 和 Linux。内置支持 JavaScript、TypeScript 和 Node.js,并且拥有一个丰富的插件生态系统来支持其它语言(C/C++、C#、Java、Python、PHP、Go 等)和运行时(.Net 和 Unity 等)。本文将讲解如何使用 VSCode 来进行 Python 开发。

安装和配置

VSCode 的安装很简单,从官网下载对应平台的安装包,然后按照正常软件一样安装即可。后面操作的快捷键将以 macOS 平台为例,Windows 平台对应的快捷键大多数只需把 键替换为 键即可。

设置显示语言

VSCode 默认的显示语言为当前系统语言。对于中文系统,如果想把 VSCode 的显示语言改为英文,可按如下步骤操作。

同时按下 ⇧⌘P 以打开命令面板,输入“config”来过滤命令列表,然后选择“Configure Language”。

使用 VS Code 来开发和调试 Python 程序

此时会打开 locale.json 文件,里面的 locale 配置项的值默认为当前系统语言,把它改为 en 就可以了。

使用 VS Code 来开发和调试 Python 程序

设置主题

VSCode 默认的主题为深色系的 Dark+,已经比较美观。唯一不太舒服的是底部的状态条背景色为亮蓝色,容易分散注意力,可以改成浅色背景。

跟前面一样,使用快捷键打开命令面板,输入“settings”来过滤命令列表,然后选择“Preferences: Open User Settings”。

此时会在左侧打开 VSCode 默认的配置文件(DEFAULT SETTINGS),右侧有两个 Tab,第一个是用户级别的配置文件(USER SETTINGS),第二个是工作空间(项目)级别的配置文件(WORKSPACE SETTINGS)。如果需要配置对当前用户的所有工作空间生效,则在用户配置文件里修改,否则修改工作空间配置文件。可以在上方输入框里输入关键词来过滤配置项,以找到想要修改的配置项的具体名称。如果要修改所有项目的底部状态条的背景色为浅色,就在用户配置文件里添加如下内容。

{
    ...
    "workbench.colorCustomizations": {
        "statusBar.background": "#21252b",
        "statusBar.foreground": "#969ead"
    },
    ...
} 

使用 VS Code 来开发和调试 Python 程序

如果觉得默认的主题不喜欢,可以更换主题。使用快捷键打开命令面板,输入“theme”来过滤命令列表,然后选择“Preferences: Color Theme”。

此时会列出所有内置的主题,可通过上下方向键来预览每种主题的显示效果,喜欢哪种回车确认即可。

使用 VS Code 来开发和调试 Python 程序

设置快捷键

想要高效使用 VSCode,掌握常用操作的快捷键是必不可少的。使用快捷键打开命令面板,输入“keyboard”来过滤命令列表,然后选择“Preferences: Open Keyboard Shortcuts”。

此时会列出所有支持快捷键的操作,可在上方输入框输入关键词来过滤列表。如果想修改某个操作的快捷键,双击该行,将弹出新的快捷键输入框,按下你想要使用的快捷键组合,回车确认即可。

使用 VS Code 来开发和调试 Python 程序

如果觉得一个一个修改起来比较繁琐,或者想把自己熟悉的某个 IDE 的快捷键同步过来,VSCode 也是支持的。使用快捷键打开命令面板,输入“keymaps”来过滤命令列表,然后选择“Preferences: Keymaps”。

此时会打开 VSCode 的插件管理器,并自动过滤出来跟“keymaps”有关的插件。里面包含了各种常见 IDE 的快捷键同步插件,包括 Sublime Text、IntelliJ IDEA、Atom、Eclipse等,其中部分由微软官方提供。

使用 VS Code 来开发和调试 Python 程序

点击你想要同步的“Keymap”,会在右侧主窗口展示插件详情。选择 Install 来安装插件,安装完成后需要执行 Reload 来加载插件。如果已经安装过,可通过 Uninstall 来卸载插件,同样也需要执行 Reload 来生效。VSCode 所有插件的安装和卸载都遵循这样的一个标准流程。

使用 VS Code 来开发和调试 Python 程序

配置 Python 开发环境

安装 Python 插件

VSCode 没有内置支持 Python 开发,但官方提供了插件。点击最左侧的 Activity Bar 上方区域里的 Extensions 图标,打开插件管理界面。在顶部搜索框内输入“python”,点击名为“Python”的插件,然后按照正常插件的安装流程安装即可。

使用 VS Code 来开发和调试 Python 程序

对于 macOS,Python 插件默认会使用系统自带的 Python,目前为 /usr/bin/python2.7。不推荐使用系统自带的,至少使用用户自己安装的版本(macOS 下可使用 brew 工具来安装),更好的方式是为每一个项目创建一个独立的 Python 环境(Python 3.3+ 推荐使用 venv 模块来创建)。安装好 Python 之后,点击下方 Status Bar 里的当前 Python 版本信息,会弹出 Python 解释器选择界面。选择界面的下拉列表里列出了当前系统安装的各个 Python 解释器,选择你想要使用的那个即可。

使用 VS Code 来开发和调试 Python 程序

如果在列表里找不到你想要的,还可以直接修改工作空间配置文件。

{
    "python.pythonPath": "/Users/jagger/projects/jaggerwang/sanic-in-practice/venv/bin/python3",
} 

代码格式检查

Python 插件默认使用 Pylint 工具来进行代码格式检查,同时支持自动格式化,初次使用会提示安装 pylint 包。代码风格遵循的是 PEP8,Status Bar 里会显示当前文件不符合规范的地方有多少处,分 Error 和 Warning 两种级别,点击可查看详情。

在要格式化的 Python 文件里点击右键,选择“Format Document”即可自动格式化当前文件。也可以使用快捷键,具体可从右键菜单里查看。如果觉得不合适,可以参照前面的讲解设置想要的快捷键。笔者使用的是 ⌥⌘L,跟 Sublime Text 保持一致。还可设置在保存文件的时候执行格式化。

{
    "editor.formatOnSave": true,
} 

运行 Python 程序

运行前请先安装好相关 pip 依赖包。在要运行的 Python 文件里右键,选择“Run Python File in Terminal”。或者打开命令面板,输入“python run”,然后选择“Python: Run Python File in Terminal”。无论哪种操作都会在界面下方打开一个终端来执行 Python 程序。这种自动执行方式不支持传递命令行参数,需要的话可以在打开的终端里重新执行命令并传递参数。界面下方的终端也可通过快捷键 `⌃`` 来打开。

使用 VS Code 来开发和调试 Python 程序

上面的截图里,因为程序需要接收命令行参数,所以无法运行失败。在终端里在原有命令后添加相应的命令行参数后再次执行即可,并且这里还把工作目录切换到了子目录。

如果需要更高级的执行方式,比如在执行之前自动进入到文件所在目录,可以安装“Code Runner”这个插件。它不仅支持执行 Python 程序,还支持执行 C/C++、Java、Go 等常见语言程序。安装之后可按照下面的方式来配置自动进入文件目录和清除上次输出。

{
    ...
    "code-runner.fileDirectoryAsCwd": true,
    "code-runner.clearPreviousOutput": true,
    ...
} 

调试 Python 程序

调试(Debug)是 IDE 必不可少的一项功能,VSCode 自然也会提供。有效利用 IDE 的调试功能,可以省去很多手动在代码里添加和删除打印日志代码的工作。点击左侧 Activity Bar 里上方的 Debug 图标,可进入调试界面。

调试功能的配置文件为 launch.json,该文件默认不存在。首次进入调试界面,点击左上方的齿轮图标来打开该配置文件,VC Code 发现文件不存在会自动创建一个默认的。

使用 VS Code 来开发和调试 Python 程序

调试配置文件里配置了多种调试方式,通常使用“Python: Current File”方式即可。cwd 用来配置自动切换工作目录,args 用来配置命令行参数。得益于 VSCode 强大的 IntelliSense 功能,我们不需要一一记住所有配置项的名称,VSCode 会通过智能感知在适当的时候提示我们要输入的内容。

使用 VS Code 来开发和调试 Python 程序

配置好 launch.json 文件后,点击左上方的运行图标来启动调试。需要注意的是我们至少需要在某行代码处打个断点,否则程序就直接运行完成了。启动调试后程序会停在第一个断点处,界面上方会出现调试工具条。工具条上提供了常见的调试操作,包括单步调试、重启调试、终止调试等。左侧 Side Bar 从上到下,依次是变量区、观察区、调用栈区和断点区。

总结

总体来说,使用 VSCode 来开发 Python 程序还是非常合适的。界面美观,轻量快速,语法高亮、代码格式化、自动跳转、运行、调试等 IDE 核心功能也都具备。本文仅仅介绍了 VSCode 的核心功能,作为一个入门引导,大家可在此基础上去探索更多更高效的用法。如果想进一步学习如何使用 VSCode 来开发真实的 Python 项目,包括使用 VSCode 的远程容器开发功能来快速搭建开发环境,可以参考此项目 Sanic in Practice

本文转自 https://blog.jaggerwang.net/vs-code-develop-debug-python-program/,如有侵权,请联系删除。

点赞
收藏
评论区
推荐文章
浅梦一笑 浅梦一笑
4个月前
初学 Python 需要安装哪些软件?超级实用,小白必看!
编程这个东西是真的奇妙。对于懂得的人来说,会觉得这个工具是多么的好用、有趣,而对于小白来说,就如同大山一样。其实这个都可以理解,大家都是这样过来的。那么接下来就说一下python相关的东西吧,并说一下我对编程的理解。本人也是小白一名,如有不对的地方,还请各位大神指出01名词解释:如果在编程方面接触的比较少,那么对于软件这一块,有几个名词一定要了解,比如开发环
技术小男生 技术小男生
4个月前
linux环境jdk环境变量配置
1:编辑系统配置文件vi/etc/profile2:按字母键i进入编辑模式,在最底部添加内容:JAVAHOME/opt/jdk1.8.0152CLASSPATH.:$JAVAHOME/lib/dt.jar:$JAVAHOME/lib/tools.jarPATH$JAVAHOME/bin:$PATH3:生效配置
光头强的博客 光头强的博客
4个月前
Java面向对象试题
1、请创建一个Animal动物类,要求有方法eat()方法,方法输出一条语句“吃东西”。创建一个接口A,接口里有一个抽象方法fly()。创建一个Bird类继承Animal类并实现接口A里的方法输出一条有语句“鸟儿飞翔”,重写eat()方法输出一条语句“鸟儿吃虫”。在Test类中向上转型创建b对象,调用eat方法。然后向下转型调用eat()方
刚刚好 刚刚好
4个月前
css问题
1、在IOS中图片不显示(给图片加了圆角或者img没有父级)<div<imgsrc""/</divdiv{width:20px;height:20px;borderradius:20px;overflow:h
blmius blmius
1年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
晴空闲云 晴空闲云
4个月前
css中box-sizing解放盒子实际宽高计算
我们知道传统的盒子模型,如果增加内边距padding和边框border,那么会撑大整个盒子,造成盒子的宽度不好计算,在实务中特别不方便。boxsizing可以设置盒模型的方式,可以很好的设置固定宽高的盒模型。盒子宽高计算假如我们设置如下盒子:宽度和高度均为200px,那么这会这个盒子实际的宽高就都是200px。但是当我们设置这个盒子的边框和内间距的时候,那
Stella981 Stella981
1年前
Python之time模块的时间戳、时间字符串格式化与转换
Python处理时间和时间戳的内置模块就有time,和datetime两个,本文先说time模块。关于时间戳的几个概念时间戳,根据1970年1月1日00:00:00开始按秒计算的偏移量。时间元组(struct_time),包含9个元素。 time.struct_time(tm_y
Wesley13 Wesley13
1年前
MySQL查询按照指定规则排序
1.按照指定(单个)字段排序selectfromtable_nameorderiddesc;2.按照指定(多个)字段排序selectfromtable_nameorderiddesc,statusdesc;3.按照指定字段和规则排序selec
NVIDIA安培架构下MIG技术分析
关键词:NVIDIA、MIG、安培一什么是MIG2020年5月,NVIDIA发布了最新的GPU架构:安培,以及基于安培架构的最新的GPU:A100。安培提供了许多新的特性,MIG是其中一项非常重要的新特性。MIG的全名是MultiInstanceGPU。NVIDIA安培架构中的MIG模式可以在A100GPU上并行运行七个作业。多实
helloworld_34035044 helloworld_34035044
6个月前
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为