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 或文本编辑器可能是合适的。 如果您想要一些东西来帮助您编写更简洁的代码,减少错误,那么具有缓存和 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

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

回复 ,作者:codetricity

我使用带有几个不错的 python 插件的 Atom。 例如 Linter(带有 flake8) 用于随时 lint 代码。 内置的 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。

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

ninja-ide!

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

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

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

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

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

Visual Studio Code 是我的首选。 当与用于 REPL 的 IPython 和良好的 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 用于自动化。

© . All rights reserved.