Windows 上怎样做 Python 开发?MS Terminal 与 VS Code
这些对于初学者来说尤其突出:我们在安装某个库时可能出现各种依赖项错误,我们在读写文本时出现各种编码错误等等。
那么在 Windows 上如何做 Python 开发呢?相信大神们都会有自己的解决方案,但本文希望介绍微软官方发布的 Terminal 和 Visual Studio Code,希望它们能构建更流畅的 Windows 开发体验。
Visual Studio Code 是程序员可以使用的最酷的代码编辑器之一,是一个可在所有平台上使用的开源、可扩展和轻量级编辑器。正是这些品质使微软的 VS Code 大受欢迎,并成为 Python 开发的绝佳平台。可能很多读者都比较熟悉 PyCharm 与 Jupyter Notebook 等常见的 Python IDE,但 VS Code 一样不会令你失望。
在本文中,你将学习到微软 Terminal 和 Visual Studio Code 的特性,包括:
- 什么是微软 Terminal
- 微软 Terminal 效果怎么样
- 安装 Visual Studio Code
- 发现并安装 Python 扩展
- 编写简单的 Python 应用程序
- 了解如何在 VS Code 中运行和调试现有 Python 程序
- 将 VS Code 连接到 Git 和 GitHub,与全世界分享你的代码
我们假设你了解 Python 开发,并且已经在系统上安装了某种版本的 Python(如 Python 2.7、Python 3.6/3.7、Anaconda 或其他)。由于 VS Code 可兼容所有主流平台,因此你可能会看到略有不同的 UI 元素,并且可能需要修改某些命令。
新兴的微软 Terminal
Windows Terminal 是一个开源终端应用程序,由微软在今年 5 月份的 Build 开发者大会上推出。MS Terminal 支持 Command Prompt 和 PowerShell 的所有优点,基本上命令行已经可以和 Linux 相融合了,除此之外运行命令提示符也是没问题的。
在 MS Terminal 开源后,GitHub 的 Star 量增长得非常快,目前已经超过了 5 万。这足以说明这个项目非常受关注,在社区的开源改进下,这个工具一定挺好用。
MS Terminal 的效果怎么样
MS Terminal 最核心的功能就是支持多条选项卡,且每一个选项卡都可以连接到命令行 shell 或应用,例如 Command Prompt 或通过 SSH 访问树莓派等。下图展示了这种多选项卡的支持情况:
安装和配置 VS Code
前面介绍了开发中必不可缺的命令行工具,下面我们该聊一聊 VS Code 了,它是支持 Python 开发的核心工具。下面我们从最初的安装、环境管理到编写、测试、发布代码,介绍我们该如何优雅地使用 VS Code。
在任何平台上都可以安装 Visual Studio Code。官网提供了 Windows、Mac 和 Linux 的完整安装说明,并且会每月更新编辑器,其中包含新功能和错误修正。你可以在 Visual Studio Code 网站上找到所有安装内容:
VS Code UI 已有详细记录,这里不予赘述:
Python 扩展
如上所述,VS Code 通过详细记录的扩展模型支持多种编程语言的开发。Python 扩展使用户可以在 Visual Studio Code 中进行 Python 开发,具有以下特征:
- 既支持 Python 3.4 及更高版本,也支持 Python 2.7 版本
- 使用 IntelliSense 完成代码补全
- Linting
- 调试支持
- 代码片段支持
- 单元测试支持
- 自动使用 conda 和虚拟环境
- 在 Jupyter 环境和 Jupyter 笔记本中进行代码编辑
- Keymaps 允许已经熟悉 Atom,Sublime Text,Emacs,Vim,PyCharm 或其他环境的用户更加容易上手。
- 主题自定义 UI,无论您喜欢在明亮,黑暗或更丰富多彩的地方进行编码。
- 语言包提供本地化体验。
以下是比较有用的一些其他扩展和设置:
- GitLens 直接在编辑视窗中提供了大量有用的 Git 功能,包括非责任注释和存储库开发功能。
- 通过从菜单中选择 File, Auto Save,可以轻松进行自动保存。默认延迟时间为 1000 毫秒,也可以重新配置。
- Settings Sync 允许用户借助 GitHub 在不同的装置中同步自己的 VS Code 设置。如果用户在不同的计算机上工作,这有助于运行环境保持一致。
- Docker 让用户可以快速轻松地使用 Docker,帮助创作 Dockerfile 和 docker-compose.yml,打包和部署项目,甚至为项目生成适当的 Docker 文件。
当然,在使用 VS Code 时,你可能会发现其他有用的扩展。请在评论中分享你的发现和设置!
单击活动栏(Activity Bar)上的「扩展」图标可以访问和安装新扩展和主题。用户可以输入关键词来搜索扩展程序,以多种方式对搜索结果进行排序,快速轻松地安装扩展程序。在本文中,在活动栏的 Extensions 项中键入 python 并单击 Install 即可安装 Python 扩展:
Visual Studio Code 配置文件
值得一提的是,Visual Studio Code 可通过用户和工作区设置(User and Workspace Settings)实现高度配置。
用户设置(User settings)在所有 Visual Studio Code 实例中都是全局性的,而工作区设置(Workspace Settings)是特定文件夹或项目工作区的本地设置。工作区设置为 VS Code 提供了极大的灵活性,工作区设置会在整篇文章中提到。工作区设置以.json 文件的形式存储在名为.vscode 的项目工作区本地文件夹中。
启动新的 Python 程序
让我们以一个新的 Python 程序来探索 Visual Studio Code 中的 Python 开发。在 VS Code 中,键入 Ctrl + N 打开一个新文件。(你也可以从菜单中选择「文件」-「新建」。)
无论你如何操作,你都应该看到一个类似于以下内容的 VS Code 窗口:
输入 Python 代码
作为测试,我们可以快速编码埃拉托斯特尼筛法(Sieve of Eratosthenes,它可以找出小于已知数的所有质数)。在刚打开的新选项卡中键入以下代码:
若要激活 Python 扩展,请保存文件(从菜单中选择 File-Save 或者从命令面板中选择 File-Save File 或者只使用 Ctrl + S)为 sieve.py。VS Code 将看到.py 扩展名并正确地将该文件转化为 Python 代码。
现在你的窗口视图应如下所示:
运行 Python 代码
现在代码已经完成,你可以运行它了。没有必要让编辑器执行此操作:Visual Studio Code 可以直接在编辑器中运行此程序。保存文件(Ctrl + S),然后在编辑器窗口中单击右键并选择在终端(Terminal)中运行 Python 文件(Run Python File):
编辑现有的 Python 项目
在 Sieve of Eratosthenes 示例中,你创建了一个 Python 文件。作为一个例子这很不错,但很多时候,你需要创建更大的项目,并在更长的时间内在它上面进行开发。
典型的新项目工作流程可能如下所示:
- 创建一个文件夹来保存项目(可能包含一个新的 GitHub 项目)
- 更改为新文件夹
- 使用命令 code filename.py 创建初始 Python 代码
在 Python 项目(而不是单个 Python 文件)上使用 Visual Studio Code 开辟了更多功能,使得 VS Code 能够真正发挥作用。让我们来看看它在更大的项目中如何运作。
假如我们编写了一个计算器程序,该程序通过艾兹格·迪科斯彻(Edsger Dijkstra)调度场算法的一种变体来解析中缀符号(infix notation)编写的方程式。
为了说明 Visual Studio Code 以项目为中心的特征,我们现在开始在 Python 中重新创建调度场算法作为方程式评估库。相应 GitHub 地址:https://github.com/JFincher42/PyEval。
本地文件夹创建后,你可以快速打开 VS Code 中的整个文件夹。由于我们已经创建了文件夹和基本文件,所以首选方法(如上所述)做出如下修正:
cd /path/to/project
code .
当你这种方式打开时,VS Code 了解并将使用它看到的任何 virtualenv、pipenv 或 conda 环境。你甚至不需要首先启动虚拟环境。通过菜单中的 File, Open Folder、键盘上的 Ctrl+K, Ctrl+O 或者命令面板中的 File, Open Folder 等方式,你可以打开用户界面(UI)上的文件夹。
以下是创建的方程式 eval 库项目:
代码测试的支持
VS Code 可以自动识别在 unittest、pytest 或 Nose 框架中编写的现有 Python 测试,但前提是在当前环境中安装了这些框架。作者在 unittest 框架中编写了一个用于方程式 eval 库的单元测试,你可以在这个例子中使用它。
测试框架设置完成并显示测试后,你可以单击状态栏(Status Bar)上的 Run Tests 并从命令面板中选择一个 option 来运行所有测试:
调试支持
即使 VS Code 是代码编辑器,直接在 VS Code 中调试 Python 也是可以的。VS Code 提供的诸多功能可以媲美好的代码调试器,包括:
- 自动变量跟踪
- 监看表达式
- 断点
- 调用堆栈检查
你可以在活动栏上的 Debug 视图中看到这些功能:
在开始调试更复杂的项目(包括 Django 或 Flask 应用程序)之前,你首先需要设置并选择调试配置。设置调试配置相对简单。从 Debug 视图中选择 Configuration 下拉列表(drop-down),然后选择 Add Configuration 和 Python:
Git 集成
VS Code 不仅内置对源代码控制管理的支持,还支持 Git 和 GitHub。你可以在 VS Code 中安装对其他 SCM 的支持,并列使用它们。用户可以从 Source Control 视图访问源代码控制:
- 将文件提交给 Git
- 将更改推送到远程存储库(remote repo)并从中取出更改
- check-out 现有或创建新的分支和标签(branch and tag)
- 查看并解决合并冲突(merge conflict)
- 查看差异(view diffs)
所有这些功能都可以直接从 VS Code UI 获得:
文章来源:机器之心
参考文章:
https://realpython.com/python-development-visual-studio-code
https://devblogs.microsoft.com/commandline/introducing-windows-terminal