当前位置: 首页 > 科技观察

在Windows上编写Python代码的最佳组合!

时间:2023-03-20 17:01:54 科技观察

如何在Windows上进行Python开发?你用的是大师之类的纯文本编辑器,还是更完善的IDE?我应该使用内置的命令行工具,还是需要安装一个新的终端?使用Windows系统的一大好处就是它的应用太丰富了,即使是强大的GPU也可以在业余时间做其他的“工作”。不过不同于Linux或者macOS,在Windows上开发总会遇到很多挑战,无论是文件编码、环境控制还是项目编译,在开发过程中总会有一些神奇的收获。这些对于初学者尤其突出:我们在安装某个库时可能会出现各种依赖错误,在读写文本时可能会出现各种编码错误等等。那么如何在Windows上进行Python开发呢?相信大神们会有自己的解决方案,不过本文希望介绍的是微软官方发布的Terminal和VisualStudioCode,希望它们能够构建更流畅的Windows开发体验。VisualStudioCode是程序员可用的最酷的代码编辑器之一,它是一种开源、可扩展且轻量级的编辑器,可在所有平台上使用。正是这些品质使微软的VSCode如此受欢迎,并成为Python开发的优秀平台。许多读者可能熟悉PyCharm和JupyterNotebook等常见的PythonIDE,但VSCode不会让你失望。在本文中,您将了解MicrosoftTerminal和VisualStudioCode的功能,包括:什么是MicrosoftTerminalMicrosoftTerminal如何工作安装VisualStudioCode发现并安装Python扩展编写一个简单的Python应用程序了解如何在VS中运行它编码和调试现有的Python程序将VSCode连接到Git和GitHub以与世界、Anaconda或其他人共享您的代码。由于VSCode兼容所有主要平台,您可能会看到略有不同的UI元素,并且某些命令可能需要修改。新兴的微软终端WindowsTerminal是微软在今年5月的Build开发者大会上推出的一款开源终端应用。MS终端支持命令提示符和PowerShell的所有优点。基本上,命令行可以与Linux集成。另外,运行命令提示符也没有问题。MSTerminal开源后,GitHub上的star数增长非常快,目前已经超过5万。这足以说明这个项目很受欢迎。随着社区的开源完善,这个工具一定非常好用。MSTerminal开源地址:https://github.com/microsoft/terminal当然MSTerminal已经可以直接下载安装程序了,社区的体验也很好。因此,如果我们在Windows上做Python开发,命令行工具可以使用MSTerminal,可以解决很大一部分包安装、环境控制等问题。MSTerminal的作用是什么?MSTerminal的核心功能是支持多个选项卡,每个选项卡都可以连接到命令行shell或应用程序,例如命令提示符或通过SSH访问树莓派。下图是这个多tab的支持:另外,除了功能,更重要的是外观,就像我们经常使用zsh来提供更漂亮的命令行一样。虽然zsh目前在GitHub上有94,000个收藏,但ReadMe文档明确指出它最好在macOS或Linux上使用。新发布的MSTerminal,无论是界面还是文字风格,都比以前强多了。背景透明度和文字高亮可以自己定义,也可以定义emoji等符号。下面是一个基本的展示,我们可以根据自己的需要调整整个界面。整个项目仍在积极开发中,许多功能正在改进和添加中。不过,既然是微软官方维护的开源项目,我们还是很有信心的,至少在命令行部分,可以减少开发过程中的各种错误。安装和配置VSCode开发必不可少的命令行工具前面已经介绍过了。下面说说VSCode,它是支持Python开发的核心工具。下面就从最初的安装和环境管理,到编写、测试和发布代码,来介绍如何优雅地使用VSCode。VisualStudioCode可以安装在任何平台上。官方网站提供了适用于Windows、Mac和Linux的完整安装说明,编辑器每月都会更新新功能和错误修复。您可以在VisualStudioCode网站上找到所有安装内容:此外,VisualStudioCode(或简称VSCode)与更大的基于Windows的VisualStudio几乎没有共同之处,只是名称相似。VisualStudioCode原生支持多种语言,其扩展模型之一具有丰富的支持附加组件的生态系统。VSCode每月更新一次,您可以在MicrosoftPython博客上阅读有关更新的信息。任何用户都可以克隆Microsoft的VSCodeGithub存储库并贡献自己的代码。VSCodeUI文档齐全,这里不再赘述:PythonExtensions如上所述,VSCode通过文档完善的扩展模型支持多种编程语言的开发。Python扩展使用户可以在VisualStudioCode中开发Python,具有以下特点:同时支持Python3.4及更高版本,也支持Python2.7版本使用IntelliSense完成代码补全Linting调试支持代码片段支持单元测试支持自动使用Jupyter环境和JupyterNotebooks中的conda代码编辑VisualStudioCode扩展不仅仅是编程:键盘映射让已经熟悉Atom、SublimeText、Emacs、Vim、PyCharm或其他环境的用户更容易上手。自定义UI的主题,无论您喜欢用浅色、深色还是更丰富多彩的颜色编写代码。语言包提供本地化体验。下面是其他一些比较好用的扩展和设置:GitLens直接在编辑窗口中提供了很多有用的Git功能,包括不负责任的评论和存储库开发功能。通过从菜单中选择“文件”、“自动保存”,可以轻松完成自动保存。默认延迟为1000毫秒,也可以重新配置。SettingsSync允许用户在GitHub的帮助下跨设备同步他们的VSCode设置。如果用户在不同的计算机上工作,这有助于保持操作环境的一致性。Docker可以让用户快速方便地使用Docker,帮助编写Dockerfile和docker-compose.yml,打包和部署项目,甚至为项目生成合适的Docker文件。当然,您可能会发现其他扩展在使用VSCode时很有用。请在评论中分享您的发现和设置!单击活动栏上的扩展图标以访问和安装新的扩展和主题。用户可以通过输入关键字搜索扩展,对搜索结果进行多种排序,安装扩展也很方便快捷。在本文中,通过在活动栏的扩展项中键入python并单击安装来安装Python扩展:用户可以通过相同的方式找到并安装上述任何扩展。VisualStudioCode配置文件值得一提的是,VisualStudioCode可通过用户和工作区设置进行高度配置。用户设置在VisualStudioCode的所有实例中都是全局的,而工作区设置是特定文件夹或项目工作区的本地设置。工作区设置为VSCode提供了极大的灵活性,并且整篇文章都提到了工作区设置。工作区设置作为.json文件存储在名为.vscode的项目工作区的本地文件夹中。启动一个新的Python程序让我们通过一个新的Python程序来探索VisualStudioCode中的Python开发。在VSCode中,键入Ctrl+N打开一个新文件。(您也可以从菜单中选择“文件”-“新建”。)无论您如何操作,您都应该看到一个类似于下图的VSCode窗口:打开一个新文件后,您可以输入代码。输入Python代码作为测试,我们可以快速编写埃拉托色尼筛法(找出所有小于给定数的素数)。在您刚刚打开的新选项卡中输入以下代码:等等,这是怎么回事?为什么VisualStudioCode不做任何关键字突出显示、任何自动格式化或任何真正有用的事情?它提供什么答案是VSCode不知道它正在处理什么类型的文件。该缓冲区称为Untitled-1,如果您查看窗口的右下角,您可以看到纯文本。要激活Python扩展,请将文件保存为sieve.py(从菜单中选择“文件-保存”或从命令面板中选择“文件-保存文件”或仅使用Ctrl+S)。VSCode将看到.py扩展名并将文件正确转换为Python代码。您的窗口视图现在应该如下所示:好多了!VSCode会自动将文件重新格式化为Python代码,您可以通过查看左下角的语言模式来验证。如果您有多个Python安装(例如Python2.7、Python3.x或Anaconda),您可以更改VSCode将使用的Python解释器,方法是单击语言模式指示器或选择Python:从命令面板中选择解释器。默认情况下,VSCode支持使用pep8格式,但您也可以选择black或yapf。现在可以添加其余的Sieve代码。要查看IntelliSense,请直接键入此代码,而无需剪切和粘贴,您应该会看到如下内容:在您键入时,VSCode自动并适当地缩进for和if语句下方的行,添加正确的括号,并提供内容提示。运行Python代码现在代码已经完成,您可以运行它了。编辑器不需要这样做:VisualStudioCode可以直接在编辑器中运行程序。保存文件(Ctrl+S),然后在编辑器窗口中右击并选择在终端中运行Python文件:您将看到终端窗格出现在窗口底部,显示代码输出结果。编辑现有的Python项目在埃拉托色尼筛法示例中,您创建了一个Python文件。这作为一个例子很好,但很多时候,您需要创建一个更大的项目并在其上开发更长的时间。典型的新项目工作流程可能如下所示:创建一个文件夹来保存项目(可能包含一个新的GitHub项目)更改到新文件夹使用命令代码filename.py在Python项目中创建初始Python代码(而不是单个Python文件)打开了更多功能,使VSCode真正发挥作用。让我们看看它在更大的项目中是如何工作的。假设我们编写了一个计算器程序,通过EdsgerDijkstra的调度域算法的变体来求解以中缀表示法编写的方程。为了说明VisualStudioCode以项目为中心的特性,我们现在着手在Python中重新创建调度农场算法作为方程式评估库。对应的GitHub地址:https://github.com/JFincher42/PyEval。本地文件夹创建完成后,可以在VSCode中快速打开整个文件夹。由于我们已经创建了文件夹和基础文件,首选方法(如上所述)进行了以下更正:cd/path/to/projectcode。当您以这种方式打开时,VSCode会理解并将使用它所看到的任何virtualenv、pipenv或conda环境。您甚至不需要先启动虚拟环境。您可以通过菜单中的文件、打开文件夹、键盘上的Ctrl+K、Ctrl+O或命令面板中的文件、打开文件夹在用户界面(UI)上打开文件夹。这是创建的方程eval库项目:当VisualStudioCode打开一个文件夹时,它还会再次打开上次打开的文件(这是可配置的)。您可以打开、编辑、运行和调试列出的任何文件。左侧活动栏中的资源管理器视图提供文件夹中所有文件的视图,并显示当前选项卡集中有多少未保存的文件。支持代码测试VSCode可以自动识别用unittest、pytest或Nose框架编写的现有Python测试,但前提是这些框架安装在当前环境中。作者在unittest框架中写了一个equationeval库的单元测试,你可以在这个例子中使用。要为项目中的任何Python文件运行现有单元测试,请右键单击并选择运行当前单元测试文件。系统将提示您指定测试框架、在项目中搜索测试的位置以及用于测试的文件名模式。所有这些都作为工作区设置保存在本地.vscode/settings.json文件中,可以修改。对于这个方程式项目,您可以选择unittest、当前文件夹和模式*_test.py。设置测试框架并显示测试后,您可以单击状态栏上的运行测试并从命令面板中选择一个选项来运行所有测试:通过在VSCode中打开测试文件,单击运行测试,然后选择RunUnitTestMethod和其他特定的测试来运行,你也可以运行单独的测试。这使得排除单个测试失败的故障并重新运行失败的测试变得简单,从而节省了大量时间。测试结果显示在Python测试日志下的输出窗格中。调试支持即使VSCode是一个代码编辑器,也可以直接在VSCode中调试Python。VSCode提供了许多可与优秀代码调试器相媲美的功能,包括:自动变量跟踪观察表达式断点调用堆栈检查您可以在活动栏上的“调试”视图中看到这些功能:调试器可以在内置终端或在外部终端实例中运行的Python应用程序。它可以附加到已经运行的Python实例,甚至可以调试Django和Flask应用程序。在单个Python文件中调试代码就像按F5启动调试器一样简单。您可以按F10和F11分别跳过和进入功能,然后按Shift+F5退出调试器。通过按F9或单击编辑器窗口中的左边距(提升边距)来设置断点。在开始调试更复杂的项目(包括Django或Flask应用程序)之前,您首先需要设置并选择调试配置。设置调试配置相对简单。从Debug视图中,选择Configuration下拉菜单(下拉),然后选择AddConfigurationandPython:VisualStudioCode将在当前文件夹下创建一个名为.vscode/launch.json的调试配置文件,它允许用户设置特定的Python配置和设置以调试特定的应用程序,如Django和Flask。微信搜索公众号:Linux技术爱好者,回复:linux获取资料。您还可以执行远程调试,调试Jinja和Django模板。在编辑器中关闭launch.json文件,然后从Configuration下拉列表中为您的应用程序选择正确的配置。Git集成VSCode不仅内置了对源代码控制管理的支持,还支持Git和GitHub。您可以在VSCode中安装对其他SCM的支持,并同时使用它们。用户可以从SourceControl视图访问源代码管理:如果您的项目文件夹包含.git文件夹,VSCode将自动打开所有Git/GitHub功能。您可以执行许多任务,例如:将文件提交到Git将更改推送到远程存储库(remoterepo)并从中拉取更改检查现有的或创建新的分支和标签(branchandtag)查看和解决合并冲突(mergeconflict)查看差异(viewdiffs)所有这些功能都可以直接从VSCodeUI获得:VSCode还可以识别在编辑器之外所做的更改并正常工作。在VSCode中提交最近的更改非常简单。修改后的文件在源代码管理视图中显示为带有M标记,而新的未跟踪文件带有U标记。将鼠标悬停在文件上并单击加号(+)以暂存更改。在视图顶部添加提交消息,然后单击复选标记以提交您的更改:您还可以从VSCode中将本地提交推送到GitHub。从SourceControl视图菜单中选择Sync,或单击分支指示器旁边状态栏上的SynchronizeChanges。所以在笔者看来,VisualStudioCode是最酷的通用编辑器之一,也是Python开发的最佳人选。希望大家也可以尝试在Python开发中使用VisualStudioCode编辑器,相信不会让大家失望的。