五大开源 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命名,实际上是用 Python 使用Qt 框架编写的。

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 公共许可证下可用。

 

其他出色的选择

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

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

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

这不是 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 的优点而又不会被完整功能集淹没的初学者程序员。

嗨 Rörd,我很熟悉 Wing,但据我所知,免费版本也不是开源的。

回复 作者 Rörd Hinrichsen (未验证)

我一直在 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。我想他们喜欢速度。他似乎对 Atom 的 UI 点头表示赞同,但喜欢 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 环境。

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

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

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

我是开源的坚定支持者 - 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 的区别在于它是“专有的”。这与自由和开源相反,后者可以是(而且通常是)非常商业化的。

OT:这条蛇是 anacondo,我猜是蟒蛇,而不是 python。

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

Visual Studio Code 是我的首选。当与 IPython 一起设置为 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 IDES 的精彩帖子。将 Selenium 与 pycharm ide 一起用于自动化。

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