17611538698
webmaster@21cto.com

六个值得选的优秀 Python IDE

编程语言 0 308 2023-10-26 12:14:39

图片

21CTO导读:Python 开发最好的 IDE 都有哪此?以下是 IDLE、Komodo、PyCharm、PyDev、 Visual Studio Code 的 Python 工具扩展以及 Spyder 等。

用于衡量一种语言的受欢迎程度和成功程度的指标中,一个最可靠的指标是可用于该语言开发环境的数量。

Python 语言的普及带来了 IDE 支持的流行,谁的开发工具既能针对普通程序员,也能针对那些使用Python执行科学工作和分析编程等任务的人员?

以下七个支持 Python 的 IDE 已涵盖了开发中的所有用例。有些是专门为 Python 构建的,而另一些则是多语言 IDE,通过附加组件支持 Python 或已使用特定于 Python 的扩展进行了改造。每个IDE都有特定的优势,并且可能对于特定类型的 Python 开发或 Python 经验水平有价值。

IDLE

IDLE 是安装 Python 时默认包含的集成开发和学习环境,即默认的 Python IDE。但是,IDLE 并不是成熟开发的替代品,它更像是一个稍精美的文件编辑器。尽管如此,IDLE 仍然是 Python 开发人员掌握该语言的默认选项之一,并且随着每个 Python 版本的发布,它都在逐步地改进。

IDLE 由默认安装的 Python 附件构建。除了 CPython 解释器本身之外,还包括 Tkinter 接口工具包。以这种方式构建 IDLE 的一个优点是它可以跨平台运行并具有一组一致的行为。缺点是界面速度可能有些慢。例如,将脚本中的大量文本打印到控制台中,它比直接从命令行运行脚本要慢很多个数量级。

IDLE 有一些直接的便利性。它具有 Python 的内置read-eval-print循环 (REPL) 或交互式控制台。这个交互式 Shell 是 IDLE 启动时呈现给用户的首个界面。IDLE 还实现了一些特性,例如按下 Ctrl-Space 时会提供关键字或变量的建议,以及集成的调试器等。与其它 IDE 相比,IDLE大多数功能的实现会有点原始,受到 Tkinter 有限的 UI 组件选择的限制,第三方附加组件的集合没有其它 IDE 那样丰富。

此外,IDLE 没有“项目”的概念,没有使用Python 虚拟环境的规范。唯一的方法是创建一个venvIDLE 并从其父级 Python 安装中调用 IDLE。

总之,IDLE 最适合两种场景:第一种是你想要快速编写一个 Python 脚本,并且需要一个预配置的工作环境之时。第二种是适合刚开始使用 Python 的初学者。即使是初学者,也要在不久之后升级到更强大的编辑器环境。

图片


IDLE 对于 Python 来说是免费的,但功能虽少,但是它最适合初学者。


OpenKomodo IDE 12


OpenKomodoIDE是 ActiveState 公司之 Komodo IDE 产品的开源版本。ActiveState 现已经停止了 Komodo 的开发,现在将其作为开源项目维护。


OpenKomodo 既可以作为独立的多语言 IDE,也可以作为与 ActiveState 语言平台的集成环境。Python 是 Komodo 支持的多种语言之一,也是 ActiveState 为其提供自定义运行时构建的多种语言之一。


安装时,Komodo 会通知你在系统上发现的编程语言、包管理器和其它开发工具的信息,这是开箱即用配置的好方法。我们可以从中看到并且可以肯定,Komodo 使用了正确版本的 Python 和正确安装的 Git环境。


当你为特定语言创建新项目时,Komodo 会提供一系列选项来预配置该项目。对于 Python 项目,你可以从几种常见的 Web 框架中选择一种。示例项目包含许多受支持语言(包括 Python)的示例和教程。


Komodo 方便的下拉搜索小部件可让你快速导航到文件中的所有方法和函数。其中键的绑定也是可配置的,并且可以通过模拟其它编辑器(例如 Sublime Text)的可下载包来添加。对于 linting,Komodo 可以与 PyChecker、Pylint、pep8 或 Pyflakes 集成。


OpenKomodo 包含许多适用于不同编程语言的附加工具,例如正则表达式生成器。另一个强大的功能是 IDE 顶部中心的“Go to Anything”栏,你可以在其中搜索当前项目或 Komodo 界面中的大多数内容。这些都是很棒的功能,并且在许多其他 IDE 中也可用(例如 Visual Studio Code)。


OpenKomodo 的一些最突出功能围绕与 ActiveState 平台的集成。开发团队可以为语言配置和构建自定义运行时,其中包含他们需要的所有包。这是为了确保各个团队成员不必为项目设置运行时和依赖项;他们可以简单地获取预加载所有内容的相同自定义运行时。

图片



LiClipse 10.0 / PyDev


Eclipse Foundation 的 Eclipse 编辑器可以通过附加组件支持多种语言。Python 支持通过名为 PyDev 的附加组件提供,你可以通过两种方式使用它。第一可以手动将其添加到现有的 Eclipse 安装中,也可以下载带有 PyDev 的预打包版 Eclipse(称为 LiClipse)。


除了 Python 支持之外,LiClipse 还包括通过 Eclipse 的 EGit 插件进行的 Git 集成、对 Python Django Web 框架的支持,甚至支持 Jython(在 JVM 上运行的 Python 变体)。

LiClipse 充分利用了 Eclipse UI 中的现有功能。所有按键都可以重新映射,LiClipse 附带一组用于 Emacs 模拟的库存按键绑定。“透视”视图系统允许您根据手头的任务(开发、调试或使用项目的 Git 存储库)在多个面板视图之间切换。

一些好的功能来自 LiClipse 包中包含的插件。重构历史记录让你可以在正式重构发生时跟踪代码库中的更改,理论上你可以使用 Git 完成此操作,但专用工具会派上用场。另一个真正不错的功能是能够在引发一个或多个异常(包括自定义的异常)时自动触发断点。

LiClipse 内置了自己的代码分析工具,但也可以配置使用 Mypy 和 Pylint。

图片


PyCharm


众所周知,JetBrains 为各种语言制作了一系列 IDE,全部基于相同的核心源代码。PyCharm 是 Python IDE,它的构建是为了支持 Python 开发人员的特有工作模式和最佳实践。

从第一次创建 PyCharm 项目的那一刻起,这种对工作流程的关注就非常明显。你可以为许多常见的 Python 项目类型(Flask、Django、Google App Engine)选择模板,包括具有关联 JavaScript 框架(Vue、Angular 等)的项目。可以从选择的解释器中设置虚拟环境,其中包含示例main.py文件。方便的 GUI 允许你将模块安装到venvusing pip,IDE 甚至会自动检测requirements.txt文件并自动安装任何缺少的依赖项。Python 项目上的大量工作都被虚拟环境的争论所消耗,因此这些功能非常受欢迎。

你会发现整个 IDE 对日常细节非常关注。例如,如果使用 Alt-Shift-F10 运行项目中的文件,PyCharm 会记住该运行配置以供将来使用。这对于可能有多个入口点的项目来说非常方便。当在 PyCharm 中打开一个加载了项目的命令行实例时,PyCharm 会自动激活该项目的虚拟环境。对于低功耗笔记本电脑的用户,PyCharm 的省电模式会禁用后台代码分析,以防止电池被消耗。

重构项目是另一个乏味的常见来源,也有一个专用的 PyCharm 工具。这不仅仅是重命名函数或方法;您可以更改相关代码的几乎每个方面(例如更改函数签名),并查看在此过程中受影响的内容的预览。PyCharm 提供了自己的代码检查工具,但第三方插件使得使用 Pylint 成为可能。

Python 项目受益于强大的测试套件,但由于涉及样板代码,开发人员经常拖延创建它们。PyCharm 的自动测试生成功能可让您为现有代码生成框架测试套件,然后根据需要用测试填充它们。如果您已经有测试,则可以配置运行配置文件来执行它们,并支持所有流行的测试框架( 、pytest、unittest等nose)。还有其他自动快捷方式。对于类,您可以在创建子类时自动查找要实现或重写的方法,从而再次减少样板代码。

默认情况下包含的另一个出色的测试工具可让您打开并检查pstat由 Python 的cProfile 性能分析工具创建的数据文件。Pstat 文件是二进制文件,您可以使用 Python 从中生成各种报告,但此工具可以为您节省一个步骤。它甚至生成可以导出到图像文件的调用图。

PyCharm 可以通过可用的插件进行极大的扩展和调整,您可以通过 PyCharm 的 UI 直接安装这些插件。这包括对 Python(CSV 和 Markdown)使用的常见数据或文本格式的支持、Docker 等第三方工具,以及对 R 和 Rust 等其他语言的支持。

PyCharm 的社区版应该涵盖大多数用例,但专业版(此处定价)添加了在企业设置中有用的功能,例如开箱即用的 Cython 支持、代码覆盖率分析工具和分析。

图片


PyCharm 的丰富功能(即使是免费版本)也使其成为大多数 Python 开发场景的强大选择。


Visual Studio Code 的 Python 扩展


Microsoft Visual Studio Code的增长和流行促进了支持几乎所有编程语言和数据格式的附加组件的开发。在提供 Python 支持的 VS Code 的各种附加组件中,最著名和最广泛使用的也是由 Microsoft 开发的。即使 PyCharm 的一些真正细粒度的功能不可用,编辑器和附加组件共同构成了 Python 开发的最佳解决方案之一。


安装后,微软的Python扩展还安装了对Jupyter notebook的支持,可以直接在编辑器中打开并使用。Python 扩展还提供了Pylance,这是一种通过 Pyright 工具提供 linting 和类型检查的语言服务器。这些组件共同提供了涵盖绝大多数开发场景的解决方案。另一个可选但有用的扩展允许将 Black 格式化程序应用到您的代码库。


VS Code 的 Python 扩展的一个缺点是缺乏用于创建新的 Python 项目并配置其所有元素的通用设置过程(例如向导)。每个步骤都必须手动完成:创建虚拟环境、配置路径等。另一方面,venvPython 扩展直接支持其中许多步骤(例如制作)。VS Code 还会自动检测项目目录中的虚拟环境,并在您在编辑器中打开终端窗口时尽力使用它们。这省去了手动激活环境的麻烦。VS Code 还可以检测使用Poetry、Python 项目管理工具或 Pipenv创建的虚拟环境 。


VS Code 中的另一个强大功能是命令面板,只需键入一两个单词即可找到几乎任何命令或设置。在搜索词前加上“Py”或“Python”前缀,你将获得更有针对性的结果。Python 扩展原生支持多种 linter 和代码格式化工具。


VS Code 通过 Python 扩展很好地支持的一件事是单元测试的发现和执行。Python 的本机unittest和第三方(但很流行)pytest都受支持。从面板中运行“Python:配置测试”命令,它将逐步完成测试发现并在状态栏上设置一个测试运行器按钮。各个测试甚至具有内联注释,可以让你重新运行或调试它们。这是我希望如何使用 Python 扩展完成许多其他事情的模型。


Visual Studio Code 的 Python 扩展专注于 Python 最广泛使用的部分,并将更深奥的部分留给第三方。例如,不支持 Python 的 Cython 超集,它允许你将 Python 编译为 C。第三方扩展提供了 Cython 语法突出显示,但没有实际集成 Cython 工作流程。随着 Cython 的“纯 Python”语法的引入,这一点变得不再那么重要,但它是 Python 扩展如何专注于最常见用例的示例。


Visual Studio Code 的 Python 扩展的最佳之处在于它如何受益于 VS Code 通常可用的扩展的灵活性和广泛文化。例如,可以自由地重新映射键绑定,并且可以使用任意数量的主题来使 VS Code 的字体或调色板更加美观。


图片

VS Code 的开放式架构允许支持任意数量的语言,其中 Python 是主要参与者。


Spyder


Spyder 专注于为科学工作提供 IDE。这种专注使得 Spyder 的灵活性不如此处介绍的其他 IDE,特别是因为它不具有相同范围的直接第三方可扩展性,但对于其特定的利基市场来说,它功能非常强大。


Spyder 本身是用 Python 编写的。这可能是它最大的怪癖或最好的功能,具体取决于您如何看待它。Spyder 可以作为模块下载并安装,以便在给定的 Python 实例中运行,设置为独立应用程序,也可以在Anaconda Python发行版或便携式WinPython发行版中设置 。在所有这些情况下,IDE 都将从特定的 Python 实例运行。


可以使用安装程序独立安装 Spyder,但主要缺点是缺少每个项目的配置。这主要意味着启动项目时没有简单的方法来配置 Spyder 以使用给定项目的虚拟环境;您只能将 Spyder 配置为一个整体来处理一个特定的venv.


另一种方法是创建一个venvSpyder 并将其安装到其中,然后从其中启动 Spyder。然而,这需要安装数十个总大小超过 400MB 的包,因此对于需要它的多个项目来说可能不切实际。另一个缺点:无论采用何种设置方法,Spyder 的启动时间都比此处介绍的其他 IDE 长得多。


Spyder 的亮点在于使 Python 的科学计算工具可以在单一界面中立即使用。用户界面的左侧是通常的项目文件树/编辑器选项卡集显示。但右侧有两个选项卡式窗格,专门用于可视化和交互式工具。IPython 和 Jupyter 笔记本在自己的窗格中运行,并生成生成的图形图(您也可以内联显示,或仅在“图”选项卡中显示)。


Spyder 中的键绑定都是可配置的,包括编辑器以外的窗格的键绑定(例如,绘图视图)。但同样,键绑定只能在编辑器范围内进行配置。对于单元测试,您需要安装一个单独的模块 ,spyder-unittest它可以与 Python 自己的unittest以及pytest和nose框架配合使用。


图片


Spyder 专注于数学和科学——因此它出现在 Anaconda 发行版中——但它也可以用于其他类型的开发工作。


结语


对于那些缺少经验的人来说,PyCharm 是最好的 IDE 之一。它对新手很友好,但其功能集并没有受到限制。事实上,它具有此处介绍的所有 IDE 中最有用的功能。其中许多功能仅在付费版本中可用,但免费版本中有很多功能可以帮助新手开发人员入门。


对于已经熟悉 Eclipse 和 Microsoft Visual Studio 的开发者来说,LiClipse 是不错的选择,它是成熟的开发环境,可以很好地集成 Python。然而,它们也是庞大、复杂的应用程序,会带来大量的认知开销。


 Visual Studio Code 编辑器因其大量的优质同扩展而受欢迎,例如,它允许项目中不仅使用 Python,还使用 HTML 和 JavaScript 的开发人员组装一系列扩展来补充完善工作流程。


Komodo IDE 的 Python 版本非常适合已经将 Komodo IDE 用于其他语言的开发人员,并且它具有独特的功能(如正则表达式求值器),可能会因它扩大其吸引力。Komodo 值得新手和专家都来仔细研究。


Spyder 最适合与Jupyter Notebook或Anaconda等发行版中的科学计算工具一起使用,而不适合作为 Python 的通用开发平台。


IDLE 最适合用于快速但不在意是否“肮脏”的脚本编写,它落地后于带有 Python 语法插件的独立代码编辑器。除非没装其它编辑器,你再使用IDLE。


Happy Coding!


作者:写代码的大雄

评论