顶级 5 个开源 Python IDE

当谈到 Python 编程时,您有很多优秀的集成开发环境可供选择。
1 位读者喜欢这篇文章。
Programming keyboard.

Opensource.com

Python 无处不在。 如今,它似乎为从主要网站到桌面实用程序再到企业软件的一切提供动力。 Python 已被用于编写所有或部分流行的软件项目,如 dnf/yum、OpenStack、OpenShot、Blender、Calibre,甚至最初的 BitTorrent 客户端。

它也恰好是我最喜欢的编程语言之一。 就我个人而言,多年来,Python 一直是我首选的语言,从大学的课堂项目到帮助我自动化重复性任务的小脚本。 它是为数不多的几种语言之一,对于初学者来说,它既容易上手,又非常强大,当初学者毕业后开始从事实际项目时也是如此。

 

 

要编辑 Python 程序,您有很多选择。有些人喜欢基本的文本编辑器,如 Emacs、Vim 或 Gedit,所有这些编辑器都可以通过语法高亮和自动完成等功能进行扩展。但是,许多处理具有复杂代码库的大型项目的高级用户更喜欢集成开发环境 (IDE),而不是文本编辑器加终端的组合。IDE 本质上是一个文本编辑器,但具有许多附加功能,有时特定于一两种编程语言,以帮助程序员跟踪整个项目。例如,大多数 IDE 会保留类、函数和变量名称的缓存,以便可以快速自动完成。其他 IDE 具有调试工具、即时逻辑和错误检查等等。

高级文本编辑器和精简 IDE 之间的界限并不总是很清楚。随着您获得经验,您通常会对您认为对您的开发需求至关重要的功能形成意见,甚至这些功能有时也取决于您正在从事的项目。

以下是一些 Python 开发者可用的最受欢迎的选项。所有这些都是跨平台的,因此可以在您选择的操作系统上使用。

Eric

Eric 是 Python 编辑常用的 IDE。Eric 以 Monty Python 的 Eric Idle 的名字命名,实际上是使用 Qt 框架 用 Python 编写的。

Eric 使用了 Scintilla,这是一个在许多不同的 IDE 和编辑器中使用的源代码编辑组件,它也可以作为独立的 SciTE 编辑器使用。

Eric 的功能与其他 IDE 类似:大括号匹配、代码完成、类浏览器、集成单元测试等等。它还具有 Qt 表单预览功能,如果您正在为您的应用程序开发 Qt GUI,这将非常有用。我个人喜欢集成的任务列表功能。

如果您是 IDE 概念的新手,Eric 可能需要一些时间才能掌握,您可能会质疑学习特定于 Python 的 IDE 是否值得投入时间。我发现 Eric 是一个很棒的、轻量级的、但功能齐全的编程环境,学习它可以提高您的代码质量,并让您熟悉所有 IDE 通用的约定。

Eric 在 GPL 版本 3 下可用。

 

Pyzo

Pyzo 是一个基于 Qt 的编辑器,具有内置的文件浏览器、项目概览、日志、调试器、缩进跟踪器等等。它认为自己是 MATLAB 的替代品,尽管实际上它是一个适用于任何 Python 项目的有用编辑器,而不仅仅是那些处理高级数学和科学的项目。

由于它是使用 Qt 构建的,因此您的工作区是高度可配置的。您可以移动面板以适应您的工作流程,或模拟您习惯的特定 IDE 布局。根据您想要在您面前的信息显示和隐藏工具面板的能力可能是一种帮助您集中注意力的有用方法,并且由于您可以将几乎每个选项分配给特定的组合键,因此您可以保持 Pyzo 编辑器的流畅和动态。

Pyzo 是一个简单的 IDE,它不是像 Eclipse 那样的整个生态系统。它没有插件架构(除了开源且因此本质上可破解之外),其主要目标是避免妨碍您,除非是为了帮助跟踪您的代码。

 

Screenshot of Pyzo Python IDE

Spyder

 Spyder IDE 与 Pyzo 一样,以数据科学家为目标受众。与 Pyzo 不同,Spyder 是一个完全独立的环境。它是一个大型、复杂且功能丰富的应用程序,具有用于显示渲染数据、代码输出、日志、历史记录等等的面板。它可以单独下载,也可以与 Anaconda 发行版捆绑下载,Anaconda 发行版是 Python 和 R 程序员常用的流行编程工具包。

 

Screenshot of Spyder Python IDE

opensource.com

PyCharm

PyCharm 是另一个流行的 Python 编辑器。PyCharm 有两个版本,PyCharm 的免费和开源版本是 社区版,在 Apache 2.0 许可下可用。

PyCharm 几乎具备人们对 IDE 的所有期望功能:集成单元测试、代码检查、集成版本控制、代码重构工具、用于项目导航的各种工具,以及您对任何 IDE 都期望的高亮和自动完成功能。

对我来说,PyCharm 的主要缺点是它的 开放核心 模式。PyCharm 的许多高级功能在开源许可下不可用,对我来说,这是一个决定性因素。但是,如果您不打算使用闭源版本中包含的高级功能,那么排除的功能可能会使 PyCharm 成为 Python 编辑的简单且相对轻量级的选择。

 

带有 PyDev 的 Eclipse

如果不涉及 Eclipse,就很难写出任何关于开源集成开发环境的文章,Eclipse 拥有庞大的开发者社区和无数可用的插件,允许您自定义它以满足几乎任何您能想到的需求。但是,这种大杂烩方法也是 Eclipse 的缺点之一。根据您的要求,它可能显得臃肿或过于复杂。

也就是说,如果您是从另一种语言(特别是 Java)的背景转向 Python,那么 Eclipse 可能已经是一个熟悉的 IDE。如果您利用了它的许多功能,您可能会发现没有它们的生活会很困难。即使您是编程新手,Eclipse 也可能是一个很好的入门 IDE,因为一旦您学会了它,您很可能将其用于您从事的大部分或所有其他工作,无论语言如何。

PyDev 为 Eclipse 增加了大量功能,远远超出简单的代码高亮。它处理代码完成、集成 Python 调试、添加令牌浏览器、重构工具等等。如果您正在使用流行的 Django Python Web 框架,那么您可以利用 PyDev 创建新的 Django 项目、使用热键执行 Django 操作,并使用专门针对 Django 的单独运行配置。

Eclipse 和 PyDev 都在 Eclipse Public License 下可用。

 

其他优秀选项

开源 Python 编辑器和集成开发环境的列表很长。以下是一些其他有趣的亮点。

  • PyScripter、 LeoEditor 和 PTK (Python 工具包)是用于处理 Python 代码的工具。当然还有 IDLE,Python 默认打包的 IDE。
  • Geany、 Atom 和 Brackets 是通用代码编辑器,通过插件提供 Python 支持。
  • Netbeans 和 VS Codium 是开源通用 IDE,与 Eclipse 类似,可以通过选定的插件和扩展转换为 Python 编辑器。
  • 大多数可扩展的代码编辑器可能都具有 Python 支持。例如,如果您知道要使用哪些软件包和配置,Emacs 可以是一个功能齐全的 Python IDE。KDE 编辑器 Kate 默认具有语法高亮、代码折叠和项目目录支持,以及进一步的扩展来帮助您。

关于 Python IDE 或 Python 编辑器,重要的是要理解最佳选择是解决问题的选择。如果您对选项和配置感到不知所措,那么选择轻量级且简单的 IDE 或文本编辑器可能是合适的。如果您想要一些东西来帮助您编写更干净的代码,减少错误,那么具有缓存和代码检查的功能丰富的编辑器可能更适合您。尝试一下这里列出的,或者您自己找到的,看看哪个适合您。毕竟,开源的优势之一是选择

这不是 Python 编辑解决方案的完整列表。对于一个(几乎)完整的列表,请查看 Python 基金会的 集成开发环境 和 编辑器 列表。我们错过了您最喜欢的吗?请在下面的评论中告诉我们它是什么,并告诉我们为什么它是您的首选。

本文最初于 2015 年 10 月发布,并已更新以包含更多信息。

您有兴趣阅读更多类似的文章吗?注册我们的 每周电子邮件新闻通讯

标签
Jason Baker
前红帽员工。现在是一名顾问和有抱负的企业家。地图爱好者、创客,以及开源桌面和自托管软件的热情安装者。
Seth Kenlon
Seth Kenlon 是一位 UNIX 极客、自由文化倡导者、独立多媒体艺术家和 D&D 爱好者。他曾在电影和计算机行业工作,经常同时进行。

47 条评论

您错过了一个重要的 IDE 是 Wing IDE (https://wingware.com/),这是一个用 Python 本身编写的商业 IDE。它的免费版 Wing IDE 101 功能非常有限,但似乎非常适合想要一些 IDE 的优点而又不会被完整的功能集所淹没的初学者程序员。

我一直在使用 Visual Studio 中的 Python 工具,并且真的喜欢它。也有免费版的 Visual Studio 可用。

再次投票支持 Visual Studio Code,它是 GitHub Atom 的一个分支...

回复 ,作者 Ricky Brundritt (未验证)

您将“Bluefish 和 Geany 是两个很棒的通用 IDE,具有强大的 Python 支持”作为事后想法提及。

另一方面,您忽略提及它们两者(特别是 geany)都非常轻量级,在非常广泛的操作系统上运行,并且没有有问题的许可条款。考虑到 Eclipse 和 PyDev “臃肿,并且在低配置系统上的性能肯定会成为问题”(引用的是您自己的话!),这些 Python IDE 的轻量级尤其重要。

我目前正在使用并喜欢 Geany。我喜欢速度和轻资源使用。它非常流畅。Geany 通常是一个很棒的 IDE,它被低估了。

话虽如此,我确实觉得编辑器或 IDE 的轻量级和高性能方面对某些人很重要,但并非对所有人都是如此。

在我的情况下,我开始使用 Geany 的主要原因是因为我正在使用 X Display Forwarding over ssh 在 Raspberry Pi 上教一个小孩编程,以将 IDE 显示到另一台 Linux 机器上。我担心孩子(10 岁)会在控制台中对 vi 甚至 Emacs 感到困惑。即使使用带有 X Display forwarding 的 Emacs 似乎也不是正确的做法,因为 Emacs 快捷键正在失宠(我已经使用 Emacs 二十年了,并且勉强承认这一点)。我尝试了 NinjaIDE,但是通过 ssh 使用 X forwarding 的性能不好(来自 Raspberry Pi)。

以前,我的女儿一直在使用 PyCharm Professional,但是两个月前已转移到 Atom,因为界面不太混乱,因此在某些方面不太令人困惑。我的儿子,她的兄弟,变得叛逆并转移到了 Sublime。他喜欢速度。他很年轻。他所有的青少年朋友都使用 Sublime。我认为他们喜欢速度。就 UI 而言,他似乎对 Atom 表示赞许,但喜欢 sublime 的速度。

当我的女儿不在 Raspberry Pi 上工作时,她的主要工作站非常活泼。它具有 30GB 的 RAM、4.5Ghz 四核 i5、快速 SSD 磁盘。大多数 IDE 在主系统上的性能都很好,并且在她这个级别上不是一个考虑因素。

虽然 IDE 资源消耗很重要,但对某些人来说更重要,并且根据使用情况(如网络使用)或设备(如在低资源 Raspberry Pi 上运行)也更重要。

回复 ,作者 dan (未验证)

我尝试过使用其他工具,但我仍然回退到使用 gVim。

感谢再次为我的学习做出贡献。我使用过 gedit 和 idle3 编辑器。我喜欢它们,但在 Udemy.com 上学习 Python 课程时更多地使用 idle3。

Continuum 的 Anaconda 或 Enthought Canopy 算数吗? 我更喜欢前者作为我的首选 Python 环境。

Spyder 是迄今为止我最喜欢的 python IDE。

我唯一更喜欢的是 gedit。

这是一篇很棒的文章,来得正是时候。我刚开始学习 Python,部分是为了挑战,部分是因为我认为它将帮助我调整 Blender。

我一直在使用 atom.io 来帮助我完成这项工作,但是在阅读了这篇文章之后,我可能会尝试更多!谢谢。

如果您刚刚开始,可以尝试 Komodo Edit。这是免费且开源的。它已经存在很长时间了,并且经常更新。还有一个功能更多的付费 IDE 叫做 Komodo IDE。在这里下载 Edit,让我知道您对它的看法。http://komodoide.com/komodo-edit/

回复 ,作者 dncnmckn

我正要提及那两个。
我已经有一段时间没有使用它们了,但是它们非常好,特别是 IDE,即使不是完全 FOSS。

回复 ,作者 codetricity

我将 Atom 与一些不错的 python 插件一起使用。例如 Linter(带有 flake8)可以随时检查代码。内置的 git 集成很有帮助。最好的就是可定制性。

这就是未来。就这么简单。

我是开源的坚定支持者 - vim 很棒,我一直都在使用它,但是每当我在做一个大项目时,我都会使用 PyCharm(我购买了许可证,对我来说,这是值得的)。

我拥有 PyCharm professional 的商业许可证,并且还为我的十几岁的儿子购买了许可证。我们都使用了多年。他购买了 Sublime 的许可证,我开始使用 Atom。Atom 和插件的开发速度非常惊人。我仍然每天使用 vi 进行小任务,并且已经使用了 20 年的 Emacs(我老了)。我没想到我会喜欢 Atom,但是添加插件的容易程度真的很酷。语法高亮、检查、git 集成、代码完成,都非常好。与 PyCharm 相比,似乎更容易避免在 Atom 中使用鼠标。

话虽如此,我刚刚意识到我最近只在做小型代码项目。当我写这篇文章时,我现在想知道是否有一个特定大小的项目,PyCharm 的优势开始显现。可能存在一定数量的模块和文件,其中每个编辑器都是首选。

例子
vi:配置文件、单文件项目、少于几行代码的较短文件
atom:少量文件,每个文件最多一千行
pycharm:十几个或更多文件

回复 ,作者 Xander (未验证)

嗨 Don,

请考虑包括 Komodo Edit:免费、开源、多语言且基于 Python 构建
http://komodoide.com/komodo-edit/

谢谢!

我将 Emacs 用于我所有的 Python 和 Django 项目。从来没有任何问题。当扩展 python-jedi、python-django 和 magit 时,它可以成为 Python 的强大而最酷的 IDE。

当然,PyCharm FTW

Visual Studio Code ftw,我已经使用它与 Python 一段时间了,我再也无法回顾其他任何东西。但是,当我在一台不属于我的 PC 上时,有时 IDLE 是最佳选择,哈哈。

我投票了“其他”,我不是程序员,但我懂编程,而且我非常喜欢 python。我是 $dayjob 的系统管理员。

我主要使用 mcedit 进行简单的 python(或其他)编程,但多年来尝试过几种 python IDE 和编辑器。

我非常喜欢 Ninja-IDE。
Komodo Edit 和 Komodo IDE 也很好。

对于更大的项目,我想我会使用带有 python 插件的 Kdevelop。

我很想尝试 Atom,但它太庞大了!而且我太懒了 :)

我的老师告诉我们使用 jupyter notebook。它不是 IDE,但它易于使用。

我使用 Emacs,但我涉足 Ninja IDE。非常好,跨平台,开源。

我查看了 Ninja-ide,它看起来确实不错。新的 Fedora Python spin 使用它。但是,似乎开发已经停止。他们的 irc 频道似乎不活跃,他们的 telegram 群组是一个鬼城。它有问题,因为它没有迁移到 Qt5,而 Qt4 现在被认为是遗留的,支持正在下降。最后一次重要的提交似乎是几年前。最新版本的 Debian 和 Ubuntu 将不支持它,因为他们正在放弃对 Qt4 库的支持。它令人印象深刻,但我希望开发重新开始,将其带到 Qt5。

我非常喜欢 Pyzo。我从没见过有人推荐它。我非常确定这是因为没人知道它,所以它永远不会被列为选项。它非常流畅且简单。

ninja-ide!

初学者应该查看 Thonny:http://thonny.org

它具有动画化程序运行时行为的强大功能。

记住,Jason,像 PyCharm 这样的软件可能是商业的,但它与其他您提到的编辑器/IDE 的区别在于它是“专有的”。这与免费和开源相反,后者可以是(而且通常是)非常商业化的。

题外话:这条蛇是水蟒,我想,而不是蟒蛇。

我在 anaconda-navigator 上使用 Spyder
非常有用

Visual Studio Code 对我来说。当为 REPL 设置 IPython 并使用良好的代码检查器时,它非常强大,同时又轻巧且非常易于配置。

我完全同意,并且有了新的扩展 intellicode(这基本上是人工智能增强的 Python 语言 IntelliSense),它甚至更好。

回复 ,作者 Alex Ioannides

我是一名物理专业的学生,所以我偏爱 spyder 编辑器,因为它预先打包了各种数据和数组好东西,作为 anaconda 的一部分。它工作得非常好,并且没有那种简陋的感觉。

Monkey Studio,我过去使用 SPE(不再开发),但 Monkey Studio 面向 QT,我所有的 GUI 应用程序都使用 QT

试试这个新的。这很棒。对孩子友好。https://codewith.mu/

我认为它很棒,Python IDE 可用的选项列表。我是老派,我认为 IDLE 仍然是最好的工具。它速度快且开销低。

我一直在使用 PyDev,它带有大量功能。我一直在将其与 Selenium 一起用于自动化。

学习 Selenium Java TestNG 教程请访问 stqatools.com

Emacs 和 vim 是我的最爱

Wing 也是一个很棒的 Python IDE

感谢您的精彩阅读!我同意您对文本编辑器所说的 - 其中一些确实可以像 IDE 一样工作,特别是如果项目较小,或者您不介意自定义。本文提供了 Python IDE 和代码编辑器的精彩列表,我认为这为该主题增加了一个有趣的视角。看看它: https://stxnext.com/blog/2020/01/29/best-python-ides-code-editors/

我一直在搜索这个很长时间了,从这个网站获得这么多信息肯定是一件好事。

关于 Python IDES 的精彩帖子。将 Selenium 与 pycharm ide 一起用于自动化。

Creative Commons License本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.