使用IDLE或Python Shell编写Python对于简单的事情来说很不错,但是这些工具很快将大型编程项目变成令人沮丧的绝望。使用IDE,甚至只是一个好的专用代码编辑器,使编码变得有趣 - 但哪一个?

不要害怕,温柔的读者!我们在这里帮助解释和揭示可供您选择的无数选择。我们不能选择最适合您和您的流程的方式,但我们可以解释每种方案的优缺点,并帮助您做出明智的决定。

为了使事情变得更简单,我们将我们的列表分为两大类工具 - 专为Python开发构建的那些工具,以及为我们可用于Python的一般开发构建的工具。我们会为每个人发出一些为什么和为什么不是。最后,这些都不是互相排斥的,所以你可以凭借很少的处罚自行尝试。

但首先…

什么是IDE和代码编辑器?

IDE(或集成开发环境)是专用于软件开发的程序。顾名思义,IDE集成了几款专门为软件开发而设计的工具。这些工具通常包含一个专门用于处理代码的编辑器(例如,语法高亮和自动完成); 构建,执行和调试工具; 和某种形式的源代码控制。

大多数IDE支持许多不同的编程语言,并包含更多的功能,因此可能很大,需要时间下载和安装,并需要高级知识才能正确使用。

相比之下,专用代码编辑器可以像使用语法突出显示和代码格式化功能的文本编辑器一样简单。大多数优秀的代码编辑器都可以执行代码并控制调试器,并且最好与源代码控制系统进行交互。与IDE相比,好的专用代码编辑器通常更小,更快,但通常功能更少。

良好的Python编码环境的要求

那么在编码环境中我们真的需要什么?功能列表因应用程序而异,但有一组核心功能使编码更容易:

  • 保存并重新加载代码文件
    如果IDE或编辑器不会让您保存工作并在以后重新打开所有内容,并且处于与您离开时处于相同状态的状态,那么它就不是什么IDE。
  • 从环境内运行代码
    同样,如果您不得不退出编辑器来运行您的Python代码,那么它只不过是一个简单的文本编辑器。
  • 调试支持
    在运行代码时能够逐步浏览代码是所有IDE和最佳代码编辑器的核心功能。
  • 语法突出显示
    能够快速识别代码中的关键字,变量和符号,使得阅读和理解代码变得更加容易。
  • 自动代码格式
    任何值得使用的编辑器或IDE都会在一个while一个for语句的末尾识别冒号,并知道下一行应该缩进。

当然,还有很多您可能需要的其他功能,例如源代码控制,扩展模型,构建和测试工具,语言帮助等等。但是,上面的列表就是我认为好的编辑环境应该支持的“核心功能”。

考虑到这些特性,我们来看看我们可以用于Python开发的一些通用工具。

通用编辑器和IDE支持Python

Eclipse + PyDev

类别: IDE 
网站: www.eclipse.org 
Python工具: PyDev,www.pydev.org

如果您在开源社区花费了大量时间,那么您已经听说过Eclipse。Eclipse可用于Linux,Windows和OS X,是事实上用于Java开发的开源IDE。它具有丰富的扩展和附加组件市场,这使得Eclipse可用于各种开发活动。

PyDev就是这样一个扩展,它支持Python调试,代码完成和一个交互式Python控制台。在Eclipse中安装PyDev很容易 - 从Eclipse中选择Help,Eclipse Marketplace,然后搜索PyDev。单击安装,并在必要时重新启动Eclipse。

Eclipse安装了PyDev

原因:如果你已经安装了Eclipse,添加PyDev很快捷。对于有经验的Eclipse开发人员来说,PyDev的学习曲线是不存在的。

为什么不这样做:如果你刚刚开始使用Python,或者通常使用软件开发,那么Eclipse可能需要很多处理。请记住,当我说IDE更大,需要更多知识才能正确使用?Eclipse是所有这些和一小包(微)芯片。

崇高的文本

分类:代码编辑器
网站: http //www.sublimetext.com

Sublime Text是由Google工程师撰写的,其梦想成为一款更好的文本编辑器,它是一款非常受欢迎的代码编辑器。在所有平台上都支持,Sublime Text支持Python代码编辑,以及丰富的扩展(称为包)扩展语法和编辑功能。

安装额外的Python软件包可能非常棘手 - 所有的Sublime Text软件包都是用Python编写的,安装社区软件包通常需要您直接在Sublime Text中执行Python脚本。

崇高的文本代码编辑器

为什么
Sublime Text在社区中有很好的追随者。作为一个代码编辑器,单独的Sublime Text就是快速,小巧,并且得到很好的支持。

为什么不是 崇高文本不是免费的,尽管你可以无限期地使用评估版本。安装扩展可能会非常棘手,并且没有直接支持从编辑器内执行或调试代码。

要充分利用Sublime Text设置,请阅读我们的Python + Sublime Text设置指南,并考虑我们深入的视频课程,该课程将向您展示如何使用Sublime Text 3制作有效的Python开发设置。

原子

分类:代码编辑器
网站: https //atom.io/

Atom在所有平台上均可用作“21世纪可编辑文本编辑器”。凭借时尚的界面,文件系统浏览器和扩展市场,开源的Atom使用Electron构建,该框架使用JavaScript,HTML和CSS创建桌面应用程序。Python语言支持由Atom运行时可以安装的扩展提供。

Atom代码编辑器

为什么要
在所有平台上提供广泛的支持,这要归功于Electron。Atom体积小,下载和加载速度快。

为什么不
构建和调试支持不是内置的,而是社区提供的附加组件。由于Atom基于Electron构建,它始终运行在JavaScript过程中,而不是作为本机应用程序运行。

GNU Emacs

类别:代码编辑器
网站: https //www.gnu.org/software/emacs/

早在iPhone与Android之战之前,在Linux与Windows之战之前,甚至在PC与Mac之间的战争之前,还有编辑之战,GNU Emacs成为其中的一员。被称为“可扩展,可定制,自动记录,实时显示编辑器”的GNU Emacs几乎和UNIX一样长,并且有着热烈的追随。

GNU Emacs在任何平台上始终免费且可用(以某种形式或其他形式),GNU Emacs使用强大的Lisp编程语言进行定制,并为Python开发提供各种定制脚本。

GNU Emacs编辑器

为什么
你知道Emacs,你使用Emacs,你爱Emacs。Lisp是第二语言,你知道它给你的力量意味着你可以做任何事情。

为什么不
定制意味着将Lisp代码写入(或复制/粘贴)到各种脚本文件中。如果还没有提供,你可能需要学习Lisp来弄清楚如何去做。

另外,你知道Emacs是一个很棒的操作系统,如果它只有一个好的文本编辑器......

请务必查阅我们的Python + Emacs安装指南以充分利用此设置。

VI / VIM

分类:代码编辑器
网站: https //www.vim.org/

在文本编辑器的另一边,战争中坐落着VI(又名VIM)。在几乎所有的UNIX系统和Mac OS X上,默认情况下,VI都有同样热烈的追随。VI和VIM是模式编辑器,将文件的查看与编辑文件分开。VIM在原始VI中包含许多改进,包括可扩展性模型和就地代码构建。VIMScript可用于各种Python开发任务。

VIM文本编辑器

为什么
你知道VI,你使用VI,你爱VI。VIMScripts不会吓倒你,你知道你会按照自己的意愿去做。

为什么不
喜欢Emacs,你不习惯查找或编写自己的脚本来启用Python开发,而且你不确定模式编辑器应该如何工作。

另外,你知道VI将是一个很棒的文本编辑器,只要它有一个体面的操作系统。

如果您要使用这种组合,请参阅我们的Python + VIM安装指南,提供提示和插件建议。

视觉工作室

类别: IDE 
网站: https 
: //www.visualstudio.com/vs/ Python工具:用于Visual Studio的Python工具,也称为PTVS

由微软构建的Visual Studio是一个全功能的IDE,在许多方面与Eclipse相似。VS仅适用于Windows和Mac OS,同时提供免费(社区)和付费(专业版和企业版)版本。Visual Studio支持各种平台的开发,并附带它自己的扩展市场。

用于Visual Studio的Python工具(又名PTVS)可在Visual Studio中启用Python编码,并启用用于Python的Intellisense,调试和其他工具。

为什么
与Eclipse一样,如果您已经为其他开发活动安装了Visual Studio,添加PTVS就变得快速而简单。

为什么不
只是像Eclipse一样,Visual Studio只是Python的一个大的下载。另外,如果你使用的是Linux,那么你的运气不好 - 这个平台没有安装Visual Studio。

Visual Studio代码

分类:代码编辑器
网站: https //code.visualstudio.com/ 
Python工具: https //marketplace.visualstudio.com/items? itemName ms- python.python

不要将其与Visual Studio完全混淆,Visual Studio Code(也称为VS Code)是一个全功能的代码编辑器,可用于Linux,Mac OS X和Windows平台。体积小,重量轻但功能全面的VS Code是开源的可扩展的配置几乎任何任务。就像Atom一样,VS Code是建立在Electron之上的,所以它具有相同的优点和缺点。

在VS Code中安装Python支持非常简单 - 市场是一个快速按钮点击。搜索Python,单击安装,然后在必要时重新启动。VS Code会自动识别你的Python安装和库。

Visual Studio代码编辑器

为什么
感谢Electron,VS Code在每个平台上都可用,尽管占用空间很小,而且开放源代码,但功能却非常全面。

为什么不是
Electron意味着VS Code不是本机应用程序。此外,有些人可能有原则的理由不使用微软资源。

Python特定的编辑器和IDE

PyCharm

类别: IDE 
网站: https //www.jetbrains.com/pycharm/

PyCharm是Python中最好的(也是唯一的)功能齐全的专用IDE之一。PyCharm可在付费(专业版)和免费开源(社区)版本中使用,可在Windows,Mac OS X和Linux平台上快速轻松地安装。

开箱即用,PyCharm直接支持Python开发 - 打开一个新文件并开始编写代码。您可以在PyCharm中直接运行和调试Python,并且支持源代码管理和项目。

用于Python的PyCharm IDE

为什么
这是事实上的Python IDE环境,拥有大量支持和支持性社区。它编辑,运行和调试Python开箱即用。

为什么不能
PyCharm加载缓慢,默认设置可能需要调整现有的项目。

Spyder的

类别: IDE 
网站: https //github.com/spyder-ide/spyder

Spyder是一款开源的Python IDE,针对数据科学工作流程进行了优化。Spyder随附在Anaconda软件包管理器发行版中 - 因此根据您的设置,您可能已经在机器上安装了它。

关于Spyder的有趣之处在于它的目标受众是使用Python的数据科学家。你会注意到这一点。例如,Spyder可以很好地与SciPy,NumPyMatplotlib等常用Python数据科学库集成

Spyder具有大部分您可能期望的“常见IDE功能”,如具有强大语法高亮显示功能的代码编辑器,Python代码完成功能,甚至集成文档浏览器。

我在其他Python编辑环境中没有看到的一个特殊功能是Spyder的“变量浏览器”,它允许您在IDE内部使用基于表格的布局来显示数据。就个人而言,我通常不需要这个,但它看起来很整洁。如果您经常使用Python进行“数据科学工作”,您可能会爱上这一独特功能。IPython / Jupyter集成也很好。

总的来说,我会说Spyder比其他IDE感觉更“基本”。我喜欢将它看作一种特殊用途的工具,而不是我每天用作主要编辑环境的东西。这个Python IDE的好处在于它可以在Windows,MacOS和Linux上免费获得,并且它完全是开源软件。

Spyder Python IDE截图(图片来源:https://github.com/spyder-ide/spyder)

为什么
你是使用Anaconda Python发行版的数据科学家。

为什么不是
更有经验的Python开发人员可能会发现Spyder每天都基本无法使用,而是选择更完整的IDE或自定义编辑器解决方案。

Thonny

类别: IDE 
网站: http //thonny.org/

作为Python IDE家族的最新成员,Thonny被列为初学者的IDE。编写和维护的计算机科学学院塔尔图大学爱沙尼亚,Thonny可用于所有主要平台,与网站上的安装说明。

默认情况下,Thonny使用它自己的捆绑版本的Python进行安装,因此您不需要安装其他任何新的东西。更有经验的用户可能需要调整此设置,以便找到并使用已安装的库。

Thonny IDE适合初学者

为什么
你是一个开始的Python用户,并且想要一个可以滚动的IDE。

为什么不是
更有经验的Python开发人员会发现Thonny对于大多数用途来说太基本了,而内置的解释器是可以解决的,而不是解决方法。此外,作为一种新工具,可能会遇到可能没有即时解决方案的问题。

那么哪一个适合你?

只有你可以决定,但这里有一些基本的建议:

  • 新的Python开发人员应该尝试尽可能少的自定义解决方案。越少越好,越好。
  • 如果您将文本编辑器用于其他任务(如网页或文档),请查找代码编辑器解决方案。
  • 如果您已经在开发其他软件,您可能会发现将Python功能添加到现有工具集更容易。