介绍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
另一个优秀的商业产品,由ActiveState公司开发,是一个泛用的脚本语言IDE,除了Python外还支持javascript、perl、php、ruby、tcl等多种语言。
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
综合比较
swordsp的个人建议:
初学者首选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。
转自:
http://wiki.woodpecker.org.cn/moin/PyIDE
介绍Python程序员常用的IDE和其它开发工具的更多相关文章
- Python程序员常用的IDE和其它开发工具
概述 “工欲善其事,必先利其器”,如果说编程是程序员的手艺,那么IDE就是程序员的吃饭家伙了. IDE的全称是Integration Development Environment(集成开发环境),一 ...
- Java程序员必备的6款最佳开发工具
工欲善其事,必先利其器.每一个Java程序员都有其惯用的工具组件.对于Java程序员,各种有用的软件和工具泛滥成灾.初级开发人员要么找不到合适的工具,要么在寻找过程中浪费了大量的时间.下面,我将为大家 ...
- 5款Python程序员高频使用开发工具推荐
很多Python学习者想必都会有如下感悟:最开始学习Python的时候,因为没有去探索好用的工具,吃了很多苦头.后来工作中深刻体会到,合理使用开发的工具的便利和高效.今天,我就把Python程序员使用 ...
- 月薪3万的python程序员都看了这本书
想必大家都看过吧 Python编程从入门到实践 全书共有20章,书中的简介如下: 本书旨在让你尽快学会 Python ,以便能够编写能正确运行的程序 —— 游戏.数据可视化和 Web 应用程序,同时掌 ...
- Python程序员鲜为人知但你应该知道的16个问题(转)
add by zhj: 没找到原文出处,只能找到转载的,文中说有17个坑,其实是16个 全文如下 这篇文章主要介绍了Python程序员代码编写时应该避免的16个“坑”,也可以说成Python程序员代码 ...
- 【常用软件】木木的常用软件点评(2)------VC程序员常用工具篇
摘自:http://blog.csdn.net/liquanhai/article/details/7215045 木木的常用软件点评(2)------VC程序员常用工具篇 分类: VC++经验总结 ...
- Python程序员的进化史
各种程序员所写的阶乘算法代码 # -*- coding: utf-8 -*- #新手程序员(递归) def factorial(x): if x == 0: return 1 else: return ...
- Python程序员去上海工作有多难?
我只能说,也要看你掌握的技术可以打多少分.技术熟练度跟找工作的难易程度是成正比的:你掌握得越好,找工作就越容易(难度系数越低):反之越高. Python程序员这种技术类的工作岗位,当然还是要有扎实的技 ...
- 做为一个Python程序员的基本素养
今天在学习的过程中,明白了一些不是Python标准所必须要做的事情,二是做为一个合格的Python程序员应该所遵从的一些规范 分享给大家,有不足的地方请大家指正,此下是我学习的一点心得: 1.在给变量 ...
随机推荐
- C -小晴天老师系列——竖式乘法
C - 小晴天老师系列——竖式乘法 Time Limit: 4000/2000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others ...
- C#第五天
引用命名空间快捷键:Shift + Alt +F10: 值类型和引用类型: 区别: 1,值类型和引用类型在内存上存储的地方不一样: 2.在传递值类型和传递引用类型的时候,传递的方式不一样.值类型我们称 ...
- Xcode最最实用快捷键
转发:http://www.open-open.com/lib/view/open1397988745593.html 关于与mac 通用的快捷键网上太多,就不说了,下面介绍一些大家不是很熟悉但是 ...
- python脚本文件删除
昨天有需求需要用python脚本删除一个目录下的文件.遇到了点麻烦. 使用的是shutil.rmtree(dir)函数,这个函数可以删除有内容的目录,而shutil.rmdir(dir)只能删除空目录 ...
- PHP 5 数据类型
本页内容来自http://www.runoob.com/php/php-datatypes.html String(字符串), Integer(整型), Float(浮点型), Boolean(布尔型 ...
- hdu_4714_Tree2cycle(树形DP)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=4714 题意:给你N个点N-1条边,形成一个树,让你拆树,并连接成一个环,每拆一次,连接一次,消耗1,问 ...
- MVC 数据绑定
在做Asp.Net MVC项目中,都知道View负责页面展示数据或者提供页面收集数据,而所展示的数据或者收集的数据都是从Controller的Action中获取或提交到Controller的Actio ...
- 访问nginx-php页面的时候 报access denied.
访问页面的时候出现这个时access denied 只需到/usr/local/php/etc/php.ini中修改一下 把这个注释掉 ;open_basedir = 把这个值赋值为1 cgi.f ...
- JSP注释及scriptlet <%局部%><%!全局%><%=输出%>
显示注释: <!--注释内容-->> 隐式注释: 1. // 2./* */ 3. <%-- 注释内容--%> <!-- 这个注释客户端就可以看见 --> & ...
- 关于C#静态构造函数的几点说明
静态构造函数是C#的一个新特性,其实好像很少用到.不过当我们想初始化一些静态变量的时候就需要用到它了.这个构造函数是属于类的,而不是属于哪里实例的,就是说这个构造函数只会被执行一次.也就是在创建第一个 ...