Top 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 version 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 或文本编辑器可能是合适的。如果您想要一些可以帮助您编写更简洁、错误更少的代码的东西,那么具有缓存和 linting 功能的功能丰富的编辑器可能会更好地为您服务。尝试此处列出的一些,或您自己找到的一些,看看哪个适合您。毕竟,开源的优势之一就是选择

这不是 Python 编辑解决方案的完整列表。有关(几乎)完整的列表,请查看 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)都非常轻量级,可以在非常广泛的操作系统上运行,并且没有可疑的许可条款。考虑到带有 PyDev 的 Eclipse “臃肿,并且在低规格系统上的性能肯定会成为问题”(引用您自己的话!),这些 Python IDE 的轻量级尤其重要。

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

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

就我而言,我开始使用 Geany 的主要原因是因为我当时正在教一个小孩在 Raspberry Pi 上使用 X Display Forwarding over ssh 编程,以便将 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 内存、4.5Ghz 四核 i5 处理器、快速 SSD 硬盘。大多数 IDE 在主系统上的性能都很好,在她这个级别上不是一个考虑因素。

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

回复 的评论,作者是 dan (未验证)

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

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

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

Anaconda 使用 Spyder 作为其 IDE。

回复 的评论,作者是 Naveen Srivatsav (未验证)

Spyder 是目前为止我最喜欢的 Python IDE。

我唯一更喜欢的是 gedit。

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

我一直在使用 atom.io 来帮助我,但在阅读这篇文章后,我可能会尝试更多!谢谢。

如果您刚刚入门,可以尝试 Komodo Edit。它是免费和开源的。它已经存在很长时间了,并且经常更新。还有一个功能更丰富的付费 IDE,称为 Komodo IDE。在此处下载 Edit,并告诉我您对它的看法。http://komodoide.com/komodo-edit/

回复 的评论,作者是 dncnmckn

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

回复 的评论,作者是 codetricity

我使用带有几个不错的 Python 插件的 Atom。例如,Linter(带有 flake8)可以随时检查代码。内置的 git 集成很有帮助。最好的是可定制性。

这就是未来。简单来说。

是的,Atom 对于 Python 来说是一个非常好的选择

回复 的评论,作者是 adityaultra (未验证)

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

我拥有 PyCharm Professional 的商业许可证,还为我的十几岁的儿子购买了许可证。我们都使用了多年。他购买了 Sublime 的许可证,而我开始使用 Atom。Atom 和插件的开发速度非常惊人。我仍然每天使用 vi 处理小任务,并且已经使用 Emacs 20 年了(我老了)。我没想到我会喜欢 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。

开发已经重新启动 :)

回复 的评论,作者是 Mowestusa (未验证)

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

ninja-ide!

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

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

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

题外话:这条蛇是 anacondo,我猜,而不是 python。

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

Visual Studio Code 对我来说。当使用 IPython for REPL 和一个好的 linter 进行设置时,它非常强大,同时又轻巧且非常易于配置。

我完全同意,并且有了新的扩展 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 IDE 的精彩帖子。使用 Selenium 和 pycharm ide 进行自动化。

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 许可。
© . All rights reserved.