Python 无处不在。 如今,它似乎为从大型网站到桌面实用程序再到企业软件的一切提供动力。 Python 已被用于编写所有或部分流行的软件项目,如 dnf/yum、OpenStack、OpenShot、Blender、Calibre,甚至最初的 BitTorrent 客户端。
它也恰好是我最喜欢的编程语言之一。 就我个人而言,多年来 Python 一直是我的首选语言,从大学的课堂项目到帮助我自动化重复性任务的小脚本,我都会使用 Python。 它是为数不多的几种语言之一,对于初学者来说很容易上手,但当初学者开始从事实际项目时,它又非常强大。
要编辑 Python 程序,您有很多选择。 有些人喜欢基本的文本编辑器,如 Emacs、Vim 或 Gedit,所有这些编辑器都可以通过语法高亮和自动完成等功能进行扩展。 但是,许多处理具有复杂代码库的大型项目的高级用户更喜欢集成开发环境 (IDE),而不是文本编辑器加终端的组合。 IDE 本质上是一个文本编辑器,但具有许多附加功能,有时特定于一两种编程语言,以帮助程序员跟踪整个项目。 例如,大多数 IDE 都会缓存类、函数和变量名称,以便可以快速自动完成。 其他 IDE 具有调试工具、即时逻辑和错误检查等功能。
高级文本编辑器和精简 IDE 之间的界限并不总是很清楚。 随着您经验的积累,您通常会对您认为对您的开发需求至关重要的功能形成自己的看法,甚至这些功能有时取决于您正在从事的项目。
以下是一些 Python 开发者可用的最受欢迎的选择。 所有这些都是跨平台的,因此可以在您选择的操作系统上使用。
Eric
Eric 是 Python 编辑常用的 IDE。 Eric 以 Monty Python 的 Eric Idle 命名,实际上是使用 Qt 框架 用 Python 编写的。
Eric 使用 Scintilla,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 那样是一个完整的生态系统。 它没有插件架构(除了是开源的,因此本质上是可破解的),它的主要目标是避免妨碍您,除非帮助您跟踪代码。

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

opensource.com
PyCharm
PyCharm 是另一个流行的 Python 编辑器。 PyCharm 有两个版本,PyCharm 的免费和开源版本是 社区版,在 Apache 2.0 许可下可用。
PyCharm 几乎具有人们可能期望在 IDE 中获得的一切功能:集成单元测试、代码检查、集成版本控制、代码重构工具、各种项目导航工具,以及您期望在任何 IDE 中获得的突出显示和自动完成功能。
对我而言,PyCharm 的主要缺点是它的 开放核心 模型。 PyCharm 的许多高级功能在开源许可证下不可用,对我来说,这是一个决定性因素。 但是,如果您不打算使用闭源版本中包含的高级功能,那么缺少这些功能可能会使 PyCharm 成为 Python 编辑的简单且相对轻量级的选择。

Eclipse 与 PyDev
如果不介绍 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 月发布,并已更新以包含更多信息。
您是否有兴趣阅读更多类似的文章? 注册我们的 每周电子邮件通讯。
47 条评论