五大开源 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 或文本编辑器可能是合适的。 如果您想要一些东西来帮助您编写更简洁的代码,减少错误,那么具有缓存和 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 的一些优点而又不会被完整功能集淹没的初学者程序员。

嗨,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。 我想他们喜欢速度。 就 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 环境。

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 集成很有帮助。 最好的地方是可定制性。

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

是的,atom 是 Python 的一个非常好的选择

回复 ,作者:adityaultra (未验证)

我是开源的忠实拥护者 - vim 非常棒,我一直都在使用它,但是每当我处理一个大型项目时,我都会使用 PyCharm(我购买了许可证,对我来说,这是值得的)。

我有一个 PyCharm 专业版的商业许可证,并且还为我的青少年儿子购买了许可证。 我们都使用了多年。 他购买了 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:这条蛇是水蟒,我猜,而不是蟒蛇。

我在 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 用于自动化。

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