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 那样是一个完整的生态系统。它没有插件架构(除了是开源的,因此本质上是可破解的),它的主要目标是避免妨碍您,除非帮助您跟踪代码。

Spyder
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 编辑的简单且相对轻量级的选择。

带有 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 编辑器和集成开发环境的列表很长。以下是一些其他有趣的杰出代表。
- 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 基金会的集成开发环境和编辑器列表。我们是否遗漏了您最喜欢的?请在下面的评论中告诉我们它是什么,并告诉我们为什么它是您的首选。
本文最初于 2015 年 10 月发布,并已更新以包含更多信息。
您是否有兴趣阅读更多类似的文章?注册我们的每周电子邮件新闻通讯。
47 条评论