Python 程序员常用的 IDE 和其它开发工具
概述
“工欲善其事,必先利其器”,如果说编程是程序员的手艺,那么 IDE 就是程序员的吃饭家伙了。
IDE 的全称是 Integration Development Environment(集成开发环境),一般以代码编辑器为核心,包括一系列周边组件和附属功能。一个优秀的 IDE,最重要的就是在普通文本编辑之外,提供针对特定语言的各种快捷编辑功能,让程序员尽可能快捷、舒适、清晰的浏览、输入、修改代码。对于一个现代的 IDE 来说,语法着色、错误提示、代码折叠、代码完成、代码块定位、重构,与调试器、版本控制系统(VCS)的集成等等都是重要的功能。以插件、扩展系统为代表的可定制框架,是现代 IDE 的另一个流行趋势。
IDE 并非功能越多越好,因为更多的功能往往意味着更大的复杂度,这不但会分散程序员本来的精力,而且还可能带来更多的错误。只要基本功能满足需要,符合自己使用习惯的 IDE 才是最好的 IDE。程序员的逻辑永远是:用最合适的工具做最合适的事情。
正因为此,比起大而全的 IDE,以单纯的文本编辑器结合独立的调试器、交互式命令行等外部小工具也是另一种开发方式。由于python本身的简洁,因此在写小的代码片段以及通过示例代码学习时这种方式尤其适合。
常用 IDE 简介
这里简单介绍 Python 程序员中最流行的若干 IDE。
内置 IDE
Python 的各个常见发行版都有内置的 IDE,虽然它们的功能一般不够强大完整,但简便易得就是最大的优势。 对于初学者来说,它们也是上手的最好选择,可以让你更专注于语言本身而不会被繁复的 IDE 分散精力。
IDLE
IDLE 是 Python 标准发行版内置的一个简单小巧的 IDE,包括了交互式命令行、编辑器、调试器等基本组件,足以应付大多数简单应用。 IDLE 是用纯 Python 基于 Tkinter 编写的的,最初的作者正是 Python 之父 Guido van Rossum 本人。
http://hkn.eecs.berkeley.edu/~dyoo/python/idle_intro/index.html -- 《One Day of IDLE Toying》,图文并茂的入门文章
http://hkn.eecs.berkeley.edu/~dyoo/python/idle_intro/IDLE-chinese.htm -- 《One Day of IDLE Toying》中文版
PythonWin
PythonWin 是 Python Win32 Extensions(半官方性质的python for win32 增强包)的一部分,也包含在 ActivePython 的 windows 发行版中。如其名字所言,只针对 win32 平台。
总体来说,PythonWin 是一个增强版的 IDLE,尤其是易用性方面(就像 windows 本身的风格一样)。除了易用性和稳定性之外,(简单的)代码完成和更强的调试器都是相对于 IDLE 的明显优势。
Python Win32 Extensions 的下载页:http://sourceforge.net/projects/pywin32/
ActivePython 的主页:http://www.activestate.com/Products/ActivePython/
MacPython IDE
MacPythonIDE 是 Python 的 Mac OS 发行版内置的 IDE,可以看作是 PythonWin 的 Mac 对应版本,由 Guido 的哥哥 Just van Rossum 编写。
Emacs 和 Vim
Emacs 和 Vim 号称是这个星球上最强大(以及第二强大)的文本编辑器,对于许多程序员来说是万能 IDE 的不二(三?)选择。 比起同类的通用文本编辑器如 UltraEdit,Emacs 和 Vim 由于扩展功能的强大,可以针对性地搭建出更为完整便利的 IDE。
Emacs -- Emacs 及python-mode 的简介
Emacs23 -- Emacs 最新版本,完全支持 unicode,目前为开发中分支
Vim -- Vim 通用编辑环境使用技巧推介
PyIDEguider、VimPython、VimPythonTDD -- 社区内几篇介绍在 Vim 环境下进行 Python 开发的文章
虽然二者掌握之后可以说是终身受益,但学习曲线都比较陡峭。 由于历史原因,它们的设计理念都是基于纯 ascii 字符环境,GUI 相对来说不是支持的重点,大量使用快捷键才能带来最大的便利。 对于初学者来说,相对而言 Vim 更简洁一些,但 Emacs 的 GUI 与一般编辑器的习惯更接近些。
Eclipse + PyDev
Eclipse 是新一代的优秀泛用型 IDE,虽然是基于 Java 技术开发的,但出色的架构使其具有不逊于 Emacs 和 Vim 的可扩展性,现在已经成为了许多程序员最爱的瑞士军刀。
Eclipse -- Eclipse 集成开发环境使用说明,简略介绍了 Eclipse 插件开发的基础知识
PyDev 是 Eclipse 上的 Python 开发插件中最成熟完善的一个,而且还在持续的活跃开发中。除了 Eclipse 平台提供的基本功能之外,PyDev 的代码完成、语法查错、调试器、重构等功能都相当出色,可以说在开源产品中是最为强大的一个,许多贴心的小功能也很符合编辑习惯,用起来相当顺手。
速度和资源占用是致命伤,在低配置机器上跑起来比较吃力。
PyDev -- PyDev 开发环境简介
Eclipse 的主页:http://www.eclipse.org/
PyDev 的主页:http://pydev.sourceforge.net/
PyDev 使用手册:http://www.fabioz.com/pydev/manual_101_root.html (Eng) 此入门手册从安装到开发过程中的使用,并且是图文显示,推荐大家使用.
技术开发参考: 用 Eclipse,PyDev 和 Ant 进行 Python 开发,http://www-128.ibm.com/developerworks/cn/opensource/os-ecant/index.html
UliPad
UliPad 是国内知名 pythoner,也是 PythonCN 社区核心成员 limodou 开发的 IDE。
SPE (Stani's Python Editor)
很有特色的一个轻量级python IDE,功能很全面而不失小巧轻便,特别适合写小的脚本。
即时生成代码的 UML 类图是独此一家的功能,此外还特别注重与外部工具的集成。例如,集成了 wxGlade 作为所见即所得的 GUI 开发环境,集成了 Winpdb 作为调试器,甚至还能与 3D 建模工具 Blender 集成。
SPE 没有管理 Project 的概念,这样开发多文件多目录组成的项目时会不太方便。此外界面设计相对来说不够细致,也算是瑕疵。
SPE 的主页:http://stani.be/python/spe/
Boa Constructor
专为快速开发基于 wxPython 的 GUI 程序而设计的 IDE,支持“所见即所得”的控件拖放式开发,被称为 Python 世界中的 Delphi。
曾被 sourceforge 推选为"Project of the Month",不过最近开发速度趋于缓慢。
Boa Constructor 的主页:http://boa-constructor.sourceforge.net/
Eric3
Eric3 的主页:http://www.die-offenbachs.de/detlev/eric3.html
WingIDE
Wingware 公司开发的商业产品,总体来说是目前最为强大专业的 Python IDE,开源项目可以申请到免费的 license。
最大的缺点和 PyDev 一样,速度较慢,资源占用多。
Wingware 的主页:http://wingware.com/
Komodo
Komodo 的主页:http://www.activestate.com/Products/Komodo/
Textmate
Textmate 是 Mac OSX 平台的 Cocoa 原生程序,类似 UltraEdit。以灵活的 Bundles 和 Code Snippets 著称,支持大多数的脚本语言。Rails 的全体开发团队都用这个 Editor。类似 Emacs/vi,需要配合 ctags 分析python代码结构,可以很容易的做 unittest 等功能。需要特别指出的是它对于 Django 的 model 和 template、以及 Zope 都有专门的支持。
Textmate 的主页:http://macromates.com/
Scribes
Intype
PyScripter
Delphi 开发的 Python IDE,只有 windows 版本。
PyScripter 的主页:http://mmm-experts.com/Products.aspx?ProductId=4
IDE 之外的工具
交互式命令行(interactive console)
IPython
IPython 的主页:http://ipython.scipy.org/
调试工具(Debugger)
Winpdb
Winpdb 的主页:http://www.digitalpeers.com/pythondebugger/
其它支持 Python 的编辑器
Leo
基于全新的 Literate Programming(文学化编程)理念的开发工具,详细的介绍参见:LeoEnvironment
Leo 的主页:http://webpages.charter.net/edreamleo/front.html
Bluefish
Bluefish 通常被认为是一个类似 Homesite 的网页编辑器,但事实上它不仅如此。它应该是一个通用的文本编辑器,支持 C、PHP、Python、Ruby、Perl、Java、Shell、Tcl 等许多种编程语言,支持语法高亮、自动换行、自动关闭 HTML 标签等,可同时编辑多个文档。
Bluefish 当然不能算是一款 Python 的 IDE 工具,但如果做 Web 相关的开发( DjanGo、TurboGears 等),用它来写程序显然很方便。而且 Bluefish 相当友好,基本上不用学就会用,可以使我等菜鸟尽快将精力转移到 Python 的学习上来。
Bluefish 官方站在 http://bluefish.openoffice.nl/index.html 目前可以运行在大多数类 UNIX 操作系统上。
Discuss
综合比较
初学者首选 IDLE / PythonWin / MacPython
Emacs / Vim / Eclipse+PyDev 是强大且通用的解决方案,取决于你更熟悉哪个环境,如果都没有基础,更推荐 Eclipse+PyDev。
SPE 是纯 Python 实现的简洁型 IDE 中功能最完善的,写小脚本的时候很方便。
Boa 长处在基于 wxPython 的快速 GUI 开发。
如果有条件选择商业工具,WingIDE 或者 Komodo 都是优秀的产品。
其它比较 Python IDE 的文章:
http://www-128.ibm.com/developerworks/cn/linux/sdk/python/charm-14/index.html
"Charming Python"专栏作者 David Mertz 的测评文章,写于 2001 年,许多内容已经过于陈旧了,但仍有参考价值。
http://spyced.blogspot.com/2005/09/review-of-6-python-ides.html -- review-of-6-python-ides.html
http://spyced.blogspot.com/2006/02/pycon-python-ide-review.html -- pycon-python-ide-review.html
较新的两篇 Python IDE 测评文章(原地址需代理才能访问,后一个附件链接是本地的备份),分别比较了 PyDev、Eric3、Boa Constructor、BlackAdder、Komodo、WingIDE、SPE。
文章转载自:juggd
评论