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

哪种PythonIDE适合您?

时间:2023-03-14 21:11:21 科技观察

【.com速译】哪种Python集成开发环境(IDE)更适合你?下面针对IDLE、Komodo、LiClipse、PyCharm、VisualStudioCode、PythontoolsforVisualStudio、Spyder7种PythonIDE的组合,从功能和易用性方面进行分析和讲解。用于衡量编程语言的流行程度和成功程度的指标之一是可用开发环境的数量。Python近几年得到了广泛的应用,因此开发者也掀起了开发支持Python集成的IDE的热潮,而这些工具既面向组织的程序员,也面向使用Python进行科学工作和分析编程的工作人员。一些获得Python支持的IDE涵盖了各种用例。有些是专门为Python构建的,而另一些则是多语言IDE,它们要么通过附加组件支持Python,要么通过特定于Python的扩展进行了改进。尽管许多开发人员旨在使他们的IDE成为通用解决方案,但这取决于Python开发人员的不同需求和标准。今天的许多IDE是为特定语言和任务配备附加组件的框架,而不是从内到外编写的应用程序,以促进使用特定编程语言的开发。因此,用户对IDE的选择可能取决于他是否有使用类似IDE的经验。对于在该领域没有经验的组织和人员来说,PyCharm是一个很好的起点。它在不影响功能的情况下对初学者友好。事实上,它具有任何IDE中最常用的功能,虽然其中许多功能仅在付费版本中可用,但免费版本中的许多功能也可以帮助新手开发人员。对于已经熟悉Eclipse和MicrosoftVisualStudio的开发人员,LiClipse和VisualStudioPython工具(PTVS)是很好的选择。这两个都是成熟的开发环境,很好的集成了Python。但是,它们也是庞大而复杂的应用程序,因此会消耗更多资源。如果你已经精通其中之一,那么它是Python工作的一个不错的选择。微软的VisualStudio代码编辑器(包括微软的Python扩展)比VisualStudio轻巧得多。VisualStudioCode因其广泛的扩展而受到用户的欢迎,例如,项目的开发人员不仅可以使用Python,还可以使用HTML和JavaScript来扩展项目的组合,以补充项目的工作流程。ActiveState的KomodoIDE的Python版本适用于那些已经将KomodoIDE用于其他编程语言的人,并且具有一些独特的功能(例如正则表达式计算器)以扩大其吸引力。Komodo值得初学者和行业专家等密切关注。Spyder更适合与JupyterNotepad或Anaconda等发行版中的其他科学计算工具一起使用,而不是作为Python的开发平台。虽然IDLE最适合用于快速编写脚本,但它也可能落后于带有Python语法插件的独立代码编辑器。1.IDLEIDLE是大多数Python安装中包含的集成开发和学习环境,可以看作是默认的PythonIDE。然而,IDLE绝不是技术上成熟的IDE的替代品。它更像是一个花哨的文件编辑器。尽管如此,IDLE仍然是开发者学习Python语言的默认选项之一,并且随着Python的各个版本(尤其是Python3.5)逐渐完善。IDLE完全由默认安装的Python附带的组件构建。除了CPython解释器本身,还包括Tkinter接口工具包。以这种方式构建IDLE的一个优点是能够跨平台以一组一致的行为运行。不利的一面是,界面可能非常慢。例如,从脚本向控制台打印大量文本比直接从命令行运行脚本要慢得多。IDLE有一些直接的便利和好处。它为Python提供了一个内置的REPL(读取、评估、打印、循环)平台或交互式控制台。事实上,这个交互式shell是启动IDLE时首先呈现给用户的东西,而不是一个空的编辑器。IDLE还包括其他IDE中的一些工具,例如在按下Ctrl+Space时对关键字或变量的建议,以及一个集成的调试器。但是,由于Tkinter用户界面(UI)组件的选择有限,与其他IDE相比,大多数实现的功能都是原始的。可用于IDLE的第三方附加组件的集合,例如IdleX,远不及其他IDE丰富。IDLE没有项目的概念,因此没有关于如何使用Python虚拟环境的规则。唯一可识别的方法是创建一个虚拟环境并从其上一代安装的Python调用IDLE。这只能使用其他工具(例如测试套件)手动完成。总而言之,IDLE更适合两种情况:第一种是学习快速编写Python脚本并且需要预先配置的环境来完成。第二种情况适合刚入门的初学者。IDLE的Python集成是免费的,但它的功能集很小,因此对初学者更友好。2.KomodoIDEKomodoIDE(现已更新到12版)可以作为一个独立的多语言IDE,可以与ActiveState的语言平台集成。Python是Komodo支持的几种语言之一,也是ActiveState为其提供自定义运行时构建的几种语言之一。安装后,Komodo会通知用户在系统上找到了哪些编程语言、包管理器和其他开发工具。这是开箱即用的好方法。可以肯定的是,Komodo使用了正确版本的Python并且正确安装了Git。当组织为特定语言创建新项目时,Komodo提供了许多选项来预配置该项目。对于Python项目,您可以从几种常见的Web框架中选择一种。相反,它的示例项目包含许多受支持语言(包括Python)的示例和教程。文档中的导航非常流畅,因为文档中有一个下拉搜索小部件可以查找所有方法和函数。它的键绑定是可配置的,可以通过下载的模拟其他编辑器(如SublimeText)的包来添加。让用户喜欢Komodo的是它包含了一些针对各种语言的工具,例如正则表达式生成器。另一个很棒的功能是位于顶部中心的“转到所有内容”栏,用户可以在其中键入以查找当前项目或Komodo界面中的大部分内容,当它出现时,它总是受到用户的欢迎。对于代码检查工具,Komodo可以与PyCheke、Pylint、pep8或Pyflakes集成,尽管对它们的支持是单独连接的,而不是通过集成代码检查工具的通用机制获得的。Komodo12的一些最突出的新功能可以与ActiveState平台集成。开发团队在配置和构建语言的自定义运行时时可以获得他们需要的所有包。这是为了确保开发人员不必自己为项目设置运行时和依赖项;他们可以简单地获得相同的自定义运行时,并预装所有内容。Komodo也有一些缺点,其中最大的缺点是对使用Python虚拟环境的支持有限。您必须手动创建一个venv,然后将您项目的Python运行时与此venv相关联。切换给定项目的venv需要深入了解该项目的设置。Komodo12的原生Git集成远不及其他IDE强大。虽然用户可以使用附加组件来扩展Komodo的功能,但Komodo不需要像VisualStudioCode的附加组件那样多的附加组件。此外,其中许多附加组件在Komodo12中仍然无法正常工作。Python版本的KomodoIDE不仅提供对Python的强大支持,还整合了对其他编程语言的支持。3、LiClipse/PyDevEclipseFoundation开发的Java驱动的Eclipse编辑器,通过插件支持多国语言。对Python的支持来自一个名为PyDev的插件,用户可以通过两种方式使用它:手动将其添加到现有的Eclipse安装中,或者使用PyDev下载一个名为LiClipse的Eclipse预打包版本。除了支持Python,LiClipse还包括通过Eclipse的EGit插件集成Git,支持Python的Djangoweb框架,甚至支持Jython(运行在JVM上的Python变体)。LiClipse充分利用了EclipseUI中的常用功能。所有键都可以重新映射,并且LiClipse带有一组用于Emacs仿真的键绑定库。通过“透视”系统,用户可以根据当前任务(开发、调试或使用项目的Git存储库)在多个面板视图之间切换。LiClipse包中包含的插件提供了一些更好的功能。重构历史允许用户在进行正式重构时跟踪整个代码库的变化,理论上可以使用Git完成,但使用专用工具更方便。另一个不错的功能是能够在引发一个或多个异常(包括用户定义的异常)时自动触发断点。虽然LiClipse不会自动检测项目中是否存在venvs,但用户始终可以手动配置和添加venvs,并且LiClipse与Pipenv集成以创建和管理它们(假设Pipenv存在于基本Python安装中)。LiClipse有一个很好的GUI浏览器,可以查看哪些包安装在哪个Pythonvenvs中,用户也可以从这个GUI运行pip。LiClipse/PyDev也有一些缺点,比如很难从requirements.txt文件中安装新包,并且很难在激活环境的情况下创建shell会话。LiClipse内置了自己的代码分析工具,Mypy和Pylint也可以使用。然而,与Komodo一样,这些选择是硬连接到应用程序中的。没有一种简单的方法可以将不在列表中的其他工具组合在一起。另外,直接集成到LiClipse中的一个测试框架是单元测试,可以通过为项目创建一个特殊的运行配置来完成。LiClipse将PyDev插件打包在一个轻量级的Eclipse中,但PyDev也可以添加到现有的Eclipse安装中。4.PyCharmJetBrains为各种语言开发了一系列IDE,它们都基于相同的核心源代码。PyCharm是他们的PythonIDE,旨在支持Python开发人员的独特工作模式和实践。从用户首次创建PyCharm项目的那一刻起,对工作流的关注就显而易见了。用户可以从他们选择的解释器中选择一个虚拟环境,其中包括一个示例main.py文件。采用方便的图形用户界面(GUI)允许用户使用pip将模块安装到虚拟环境中,其IDE甚至可以自动检测requirements.txt文件,提供自动安装缺失依赖项的能力。用户可能会发现在IDE中同样关注工作细节。例如,如果您使用Alt+Shift+F10组合键运行项目中的文件,PyCharm会记住此运行配置以备将来使用。这对于可能有多个入口点的项目来说很方便。当用户在PyCharm中打开已加载项目的命令行实例时,PyCharm会自动激活项目的虚拟环境。对于使用低功率笔记本电脑的用户,PyCharm的“省电模式”会禁用后台代码分析以防止电池耗尽。还有一个专门用于重构项目的PyCharm工具。这不仅仅是重命名函数或方法;用户可以更改相关代码的大部分方面(例如更改函数签名)并预览在此过程中会受到影响的内容。PyCharm提供了自己的代码检查工具,但第三方插件使使用Pylint成为可能。Python项目受益于强大的测试套件,但由于涉及样板文件,开发人员经常拖延创建它们。PyCharm的自动测试生成功能使用户能够为现有代码生成框架测试套件,然后根据需要进行测试。如果测试已经到位,可以配置运行配置文件来执行,并且支持所有流行的测试框架(pytest、unittest、nose等)。还有其他自动快捷方式。PyCharm可以通过数千个插件进行扩展和调整,这些插件可以直接通过PyCharm的用户界面(UI)安装。这包括对Python(CSV和Markdown)、第三方工具(Docker)使用的常见数据或文本格式的支持,以及对其他语言(R和Rust)的支持。PyCharm的社区版涵盖了大多数用例,但专业版增加了一些在企业环境中有用的关键功能,例如开箱即用的Cython支持、代码覆盖率分析工具和配置文件。PyCharm丰富的功能集,即使是免费版本,也使其成为大多数Python开发场景的有力选择。5.VisualStudioCode的Python扩展MicrosoftVisualStudioCode的爆炸式增长和广泛流行推动了支持几乎所有编程语言和数据格式的附加组件的开发。最著名的VisualStudioCodePython插件也是由微软开发的,编辑器和附加组件共同构成了Python开发的最佳解决方案之一。安装时,微软的Python扩展也会安装对JupyterNotepad的支持,可以直接在编辑器中打开使用。Python扩展还提供了Pylance,这是一种通过Pyright工具提供整理和类型检查的语言服务器。这些组件共同提供了涵盖绝大多数开发场景的解决方案。VisualStudioCode的Python扩展的一个主要缺点是缺少用于创建新Python项目和配置其所有元素的常用设置过程(例如向导)。因此,每个步骤都必须手动执行:创建虚拟环境、配置路径等。它也缺乏与Pipenv等Python项目管理工具的完全集成。对于给定的项目,完全可以通过命令行手动设置,因为在VisualStudioCodeCode的Python扩展中没有使用它们的工具。尽管存在对某些单独框架的支持(例如对Django模板的调试支持),但这些仍然需要手动配置。好的一面是,VisualStudioCode会自动检测项目目录中的虚拟环境,并在用户在编辑器中打开终端窗口时更多地使用它们。这为您省去了手动激活环境的麻烦。VisualStudioCode还可以检测使用Python项目管理工具Poetry创建的虚拟环境。VisualStudioCode的另一个强大功能是命令面板,用户只需键入一两个词即可在其中找到几乎所有命令或设置。在您的搜索词前加上“Py”或“Python”将获得更有针对性的搜索结果。此外,Python扩展原生支持各种静态代码分析工具和代码格式化工具。VisualStudioCode通过Python扩展很好地支持的一件事是单元测试的发现和执行。支持Python的原生单元测试和第三方pytest。在面板中运行“Python:发现测试”命令将逐步发现测试并在底部的状态栏上设置测试运行器按钮。个别测试项目甚至有嵌入式注释,允许用户重新运行或调试它们。这是Python扩展可以做的许多事情的模型。Python扩展专注于Python中使用最广泛的部分,将更深奥的部分留给第三方开发。例如,不支持Python的Cython超集,允许用户将Python编译为C语言。第三方扩展提供Cython语法高亮,但不集成Cython工作流。VisualStudioCode的Python扩展的优点在于它可以受益于VisualStudioCode可用扩展的灵活性。例如,可以自由地重新映射键绑定,并且可以使用更多主题以使VisualStudioCode的字体或调色板更容易被接受。VisualStudioCode的开放架构允许支持多种语言,其中Python是主要语言之一。6.VisualStudio2019的Python工具如果您已经以某种形式使用VisualStudio并正在添加Python,那么采用VisualStudio的Python工具插件是有意义的。微软的开源插件为许多常见的Python框架提供了预先封装的功能,并使VisualStudio界面能够像其他语言一样提供Python调试和部署能力。VisualStudio现在对Python提供了强大的支持,无论你要构建什么样的项目,都需要采用支持该语言的IDE。在VisualStudio上使用Python进行设置有两种方法:一种是用户可以将Python工具添加到现有的VisualStudio安装中,另一种是从头开始安装VisualStudio并自动添加Python工具。虽然这两种方法的目标相同,但VisualStudio安装附带了许多常见Python应用程序类型的模板。开箱即用,VisualStudio的Python工具可以创建使用一些广泛使用的PythonWeb框架的项目:例如Flask、flaskwithjade(一种模板语言)、Django和Bottle微框架。还有用于通用Web服务的模板、简单的命令行应用程序、使用Python的WindowsIoTCore应用程序,以及从现有Python代码创建VisualStudio项目的选项。Python运行时也可以自动安装(Python3.7.8和Python2.7.18)。用户甚至可以为需要使用Python的项目安装Miniconda。还可以使用cookiecutter项目模板系统提供Scikit-learn项目的模板。当用户使用这些框架创建新项目时,VisualStudio会检查以确保用户已经拥有依赖项。如果没有,它会给用户一些选择。用户可以创建一个Python虚拟环境,并将需要的包放入其中。用户可以将系统范围内的包安装到Python解释器中,也可以手动将依赖项添加到项目中。一个好的做法是VisualStudio记录了设置项目所采取的所有步骤,因此用户知道进行了哪些更改以及更改的位置。VisualStudio还可以智能地检测requirements.txt文件的存在,并可以为用户的项目创建一个预先安装了这些要求的虚拟环境。如果您正在移植包含虚拟环境的现有项目,它们也会被自动检测并包括在内。VisualStudio的解决方案资源管理器不仅包含与每个Python项目关联的文件,还包含附带的Python环境和安装在其中的任何Python包。用户可以在界面中右键单击环境以交互方式安装包并自动生成需求文件,或者将文件夹、Zip存档或文件添加到项目的搜索路径。VisualStudio会自动为已安装的环境生成IntelliSense索引,因此编辑器的即时建议基于用户正在使用的Python环境中安装的内容,而不仅仅是当前文件或项目。当用户启动用于测试的Web应用程序时,通过工具栏中的绿色箭头启动图标,VisualStudio的应用程序启动器会弹出并打开默认的Web浏览器(或用户选择的浏览器),并将其设置为指向地址和应用程序的端口。构建菜单有一个发布选项,可以将用户的应用程序部署到各种云服务,包括微软的Azure应用程序服务。VisualStudio选择的Python工具提供了一个用于运行Pylint和Mypy代码分析器的内置工具。与依赖于外部包的其他VisualStudio功能一样,如果用户尚未设置这些包,VisualStudio会尝试安装其中一个包。用户还可以在虚拟环境中进行设置。许多用户对没有支持Cython的项目允许将Python模块编译成C扩展、DLL和独立可执行文件感到失望。Cython使用VisualStudio作为其编译器之一,但VisualStudio的Python工具不支持Cython格式的文件,也不直接支持在VisualStudio中编译Cython模块。Microsoft在VisualStudio中提供对Python作为开发语言的支持,其中包括对Web框架的支持。7.Spyder的大多数PythonIDE都是通用的,这意味着它们适用于任何类型的Python开发环境,也适用于与Python一起使用其他语言进行开发。Spyder专注于为科学工作提供IDE,而不是提供Web开发或命令行应用程序。这种专注使得Spyder不如其他IDE灵活,特别是因为它没有直接范围内的第三方扩展(例如VisualStudioCode拥有的插件),但在某些特定领域,它仍然非常强大。Spyder本身是用Python编写的。这可能是它最大的问题,也可能是它最好的特性,这取决于用户将如何构建它。虽然它使Spyder可用于Python开发人员,但也使Spyder难以作为独立应用程序使用。它主要与AnacondaPython发行版(或可移植的WinPython发行版)一起使用,并且Anaconda提供了许多Spyder所缺乏的项目管理功能。用户可以使用安装程序独立安装Spyder,但主要缺点是缺少每个项目的配置。这意味着没有简单的方法来配置Spyder在启动项目时使用任何给定项目的虚拟环境;只有Spyder作为一个整体可以配置为使用一个特定的venv。另一种方法是创建一个venv并在其中安装Spyder,然后从该venv中启动Spyder。但是,这需要安装数十个包,总计超过400MB,因此对于需要它的多个项目来说可能不太现实。Spyder的另一个缺点是:无论您使用哪种安装方法,Spyder的启动时间都比其他IDE长得多。Spyder具有一个有趣的特性,它使Python的科学计算工具可以在单个界面中立即可用。用户界面(UI)的左侧是常用的项目文件树/编辑器选项卡集。但是右侧有两个选项卡式窗格,专用于可视化和交互式工具。IPython和Jupyter记事本在它们自己的窗格中与生成的图表一起运行(也可以内联显示或仅在绘图选项卡中显示)。变量浏览器允许用户在IPython会话中以交互方式编辑所有用户创建的变量。内置的分析器面板让用户可以查看有关程序的哪些部分运行时间最长的统计信息。Spyder中的键绑定都是可配置的,包括编辑器以外的窗格(例如绘图视图)的键绑定。但是在这里,键绑定只能在编辑器范围内配置。对于单元测试,用户需要安装一个单独的模块spyder-unittest,它与Python自己的单元测试以及pytest和nose框架一起工作。Spyder专注于数学和科学,所以它出现在Anaconda中,但它也可以用于其他类型的开发工作。原标题:回顾:7PythonIDEsgotothemat,作者:SerdarYegulalp