关于python:Windows-平台做-Python-开发的最佳组合

31次阅读

共计 6993 个字符,预计需要花费 18 分钟才能阅读完成。

在 Windows 上怎么做 Python 开发?是像大神那样应用纯文本编辑器,还是用更加欠缺的 IDE?到底是用自带的命令行工具,还是须要装新的 Terminal?本文将带你理解如何利用微软官网保护的 MS Terminal 与 VS Code,来为 Python 开发保驾护航。本文选自机器之心 作者 Jon Fincher,如有侵权,则可删除。

应用 Windows 零碎一大益处是它的利用太丰盛了,甚至弱小的 GPU 也能在空闲工夫做点其它「工作」。然而与 Linux 或 macOS 不同,在 Windows 上做开发总会遇到很多挑战,不论是文件编码、环境管制还是我的项目编译,开发过程中总会有一些神奇的播种。

这些对于初学者来说尤其突出:咱们在装置某个库时可能呈现各种依赖项谬误,咱们在读写文本时呈现各种编码谬误等等。

那么在 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 开源地址:https://github.com/microsoft/…

当然,目前 MS Terminal 曾经能够间接下载安装程序了,社区的体验也十分不错。因而如果咱们在 Windows 上做 Python 开发,命令行工具就能够采纳 MS Terminal,它能解决很大一部分的包装置、环境管制等问题。

MS Terminal 的成果怎么样

MS Terminal 最外围的性能就是反对多条选项卡,且每一个选项卡都能够连贯到命令行 shell 或利用,例如 Command Prompt 或通过 SSH 拜访树莓派等。下图展现了这种多选项卡的反对状况:

此外,除了性能外,更重要的就是颜值,就像咱们罕用 zsh 来提供更好看的命令行一样。尽管 zsh 目前的 GitHub 珍藏量曾经达到 9.4 万了,但 ReadMe 文档分明地写着它最好用于 macOS 或 Linux。而新公布的 MS Terminal 不管在界面还是在文字格调,都以前都强了很多。

背景透明度、文字高亮都能够自行定义,还能定义 emoji 等符号。如下为根本的展现,咱们能够依据本人的须要调整整个界面。

整个我的项目还在踊跃开发中,很多性能也都在欠缺与减少。不过既然是微软官网保护的开源我的项目,那么咱们还是十分有信念的,至多在命令行局部能够升高开发过程中的各种报错。当然如果读者在 Windows 上有更好的命令行工具举荐,也能够在文末留言。

装置和配置 VS Code

后面介绍了开发中必不可缺的命令行工具,上面咱们该聊一聊 VS Code 了,它是反对 Python 开发的外围工具。上面咱们从最后的装置、环境治理到编写、测试、公布代码,介绍咱们该如何优雅地应用 VS Code。

在任何平台上都能够装置 Visual Studio Code。官网提供了 Windows、Mac 和 Linux 的残缺装置阐明,并且会每月更新编辑器,其中蕴含新性能和谬误修改。你能够在 Visual Studio Code 网站上找到所有装置内容:

此外,除名称相近外,Visual Studio Code(简称 VS Code)与基于 Windows 的更大规模的 Visual Studio 简直没有其余雷同的中央。

Visual Studio Code 自身反对多种语言,并且它的一个扩大模型具备反对其余组件的丰盛生态系统。VS Code 每月更新,你能够在微软 Python 博客中理解更新信息。任何用户都能够克隆微软的 VS Code Github 仓库并奉献本人的代码。

VS Code UI 已有具体记录,这里不予赘述:

Python 扩大

如上所述,VS Code 通过具体记录的扩大模型反对多种编程语言的开发。Python 扩大使用户能够在 Visual Studio Code 中进行 Python 开发,具备以下特色:

  • 既反对 Python 3.4 及更高版本,也反对 Python 2.7 版本
  • 应用 IntelliSense 实现代码补全
  • Linting
  • 调试反对
  • 代码片段反对
  • 单元测试反对
  • 主动应用 conda 和虚拟环境
  • 在 Jupyter 环境和 Jupyter 笔记本中进行代码编辑

Visual Studio Code 扩大不仅仅具备编程性能:

  • 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,它能够找出小于已知数的所有质数)。在刚关上的新选项卡中键入以下代码:

等等,这是怎么回事?为什么 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.x 或 Anaconda),则能够通过单击语言模式指示器或者从命令面板中抉择 Python: Select Interpreter 来更改 VS Code 所要应用的 Python 解释器。默认状况下,VS Code 反对应用 pep8 格局,但你也能够抉择 black 或 yapf。

当初能够增加其余的 Sieve 代码。若要查看 IntelliSense,请间接键入此代码而不要剪切和粘贴,你应该看到如下内容:

当键入代码时,VS Code 会对 for 和 if 语句上面的行进行主动、适当的缩进,增加右括号,并给出内容提醒。

运行 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…。

本地文件夹创立后,你能够疾速关上 VS Code 中的整个文件夹。因为咱们曾经创立了文件夹和根本文件,所以首选办法(如上所述)做出如下修改:

cd /path/to/project
code .

当你这种形式关上时,VS Code 理解并将应用它看到的任何 virtualenv、pipenv 或 conda 环境。你甚至不须要首先启动虚拟环境。通过菜单中的 File, Open Folder、键盘上的 Ctrl+K, Ctrl+O 或者命令面板中的 File, Open Folder 等形式,你能够关上用户界面(UI)上的文件夹。

以下是创立的方程式 eval 库我的项目:

当 Visual Studio Code 关上文件夹时,它还会再次关上上次关上的文件(这是可配置的)。你能够关上、编辑、运行和调试列出的任何文件。左侧流动栏中的资源管理器视图(Explorer view)提供文件夹中所有文件的视图,并显示以后选项卡集中有多少未保留文件。

代码测试的反对

VS Code 能够自动识别在 unittest、pytest 或 Nose 框架中编写的现有 Python 测试,但前提是在以后环境中装置了这些框架。作者在 unittest 框架中编写了一个用于方程式 eval 库的单元测试,你能够在这个例子中应用它。

若要运行我的项目中任何 Python 文件的现有单元测试,请单击右键并抉择 Run Current Unit Test File。零碎将提醒指定测试框架,在我的项目中搜寻测试的地位以及测试应用的文件名模式。

所有这些都保留为本地.vscode/settings.json 文件中的工作区设置,并能够进行批改。对于这个等式我的项目,你能够抉择 unittest、以后文件夹和模式 *_test.py。

测试框架设置实现并显示测试后,你能够单击状态栏(Status Bar)上的 Run Tests 并从命令面板中抉择一个 option 来运行所有测试:

通过在 VS Code 中关上测试文件,单击状态栏上的 Run Tests,而后抉择 Run Unit Test Method 以及其余要运行的特定测试,你还能够运行单个测试。这使得解决单个测试失败并从新运行失败的测试变得很简略,从而可能节俭大量工夫。测试结果显示在 Python Test Log 下的 Output 窗格中。

调试反对

即便 VS Code 是代码编辑器,间接在 VS Code 中调试 Python 也是能够的。VS Code 提供的诸多性能能够媲美好的代码调试器,包含:

  • 主动变量跟踪
  • 监看表达式
  • 断点
  • 调用堆栈查看

你能够在流动栏上的 Debug 视图中看到这些性能:

调试器能够管制在内置终端或内部终端实例中运行的 Python 应用程序。它能够附加到曾经运行的 Python 实例中,甚至能够调试 Django 和 Flask 应用程序。

在单个 Python 文件中调试代码就像按 F5 启动调试器一样简略。你能够按 F10 和 F11 别离跳过和进入函数,并按 Shift + F5 退出调试器。按 F9 设置断点,或者通过单击编辑器窗口中的左空白(lift margin)进行设置。

在开始调试更简单的我的项目(包含 Django 或 Flask 应用程序)之前,你首先须要设置并抉择调试配置。设置调试配置绝对简略。从 Debug 视图中抉择 Configuration 下拉列表(drop-down),而后抉择 Add Configuration 和 Python:

Visual Studio Code 将在以后名为.vscode/launch.json 的文件夹下创立一个调试配置文件,它容许用户设置特定的 Python 配置以及调试 Django 和 Flask 等特定应用程序的设置。

你还能够执行近程调试,并调试 Jinja 和 Django 模板。敞开编辑器中的 launch.json 文件,而后从 Configuration 下拉列表中为应用程序抉择正确的配置。

Git 集成

VS Code 不仅内置对源代码管制治理的反对,还反对 Git 和 GitHub。你能够在 VS Code 中装置对其余 SCM 的反对,并列应用它们。用户能够从 Source Control 视图拜访源代码管制:

如果你的我的项目文件夹蕴含.git 文件夹,VS Code 会主动关上所有 Git / GitHub 性能。你能够执行以下诸多工作:

  • 将文件提交给 Git
  • 将更改推送到近程存储库(remote repo)并从中取出更改
  • check-out 现有或创立新的分支和标签(branch and tag)
  • 查看并解决合并抵触(merge conflict)
  • 查看差别(view diffs)

所有这些性能都能够间接从 VS Code UI 取得:

VS Code 还能够辨认编辑器内部进行的更改并且正确运作。

在 VS Code 中提交最近的更改相当简略。批改后的文件显示在 Source Control 视图中,并带有 M 标记,而新的未跟踪文件应用 U 标记。将鼠标悬停在文件上而后单击加号(+)能够暂存更改。在视图顶部增加提交音讯,而后单击复选标记来提交更改:

你也能够在 VS Code 中将本地提交(local commits)推送到 GitHub。从 Source Control 视图菜单中选择 Sync,或者单击分支指示器(branch indicator)旁边状态栏上的 Synchronize Changes。

所以在作者看来,Visual Studio Code 是最酷的通用编辑器之一,也是 Python 开发的最佳候选工具。心愿你也能够在 Python 开发中尝试应用 Visual Studio Code 编辑器,置信不会令你悲观的。

参考文章

  • https://realpython.com/python…
  • https://devblogs.microsoft.co…

正文完
 0