概述

“工欲善其事,必先利其器”,如果说编程是程序员的手艺,那么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本人。

PythonWin

PythonWin是Python Win32 Extensions(半官方性质的python for win32增强包)的一部分,也包含在ActivePython的windows发行版中。如其名字所言,只针对win32平台。

总体来说,PythonWin是一个增强版的IDLE,尤其是易用性方面(就像windows本身的风格一样)。除了易用性和稳定性之外,(简单的)代码完成和更强的调试器都是相对于IDLE的明显优势。

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开发环境简介

PyDev使用手册:http://www.fabioz.com/pydev/manual_101_root.html (Eng) 此入门手册从安装到开发过程中的使用,并且是图文显示,推荐大家使用.

UliPad

UliPad是国内知名pythoner,也是PythonCN社区核心成员limodou开发的IDE。

SPE (Stani's Python Editor)

很有特色的一个轻量级python IDE,功能很全面而不失小巧轻便,特别适合写小的脚本。

即时生成代码的UML类图是独此一家的功能,此外还特别注重与外部工具的集成。例如,集成了wxGlade作为所见即所得的GUI开发环境,集成了Winpdb作为调试器,甚至还能与3D建模工具Blender集成。

SPE没有管理Project的概念,这样开发多文件多目录组成的项目时会不太方便。此外界面设计相对来说不够细致,也算是瑕疵。

Boa Constructor

专为快速开发基于wxPython的GUI程序而设计的IDE,支持“所见即所得”的控件拖放式开发,被称为Python世界中的Delphi。

曾被sourceforge推选为"Project of the Month",不过最近开发速度趋于缓慢。

Eric3

WingIDE

Wingware公司开发的商业产品,总体来说是目前最为强大专业的Python IDE,开源项目可以申请到免费的license。

最大的缺点和PyDev一样,速度较慢,资源占用多。

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都有专门的支持。

Scribes

Intype

PyScripter

Delphi开发的Python IDE,只有windows版本。

IDE之外的工具

交互式命令行(interactive console)

IPython

调试工具(Debugger)

Winpdb

其它支持 Python 的编辑器

Leo

基于全新的Literate Programming(文学化编程)理念的开发工具,详细的介绍参见:LeoEnvironment

Bluefish

Bluefish 通常被认为是一个类似 Homesite 的网页编辑器,但事实上它不仅如此。它应该是一个通用的文本编辑器,支持 C、PHP、Python、Ruby、Perl、Java、Shell、Tcl 等许多种编程语言,支持语法高亮、自动换行、自动关闭 HTML 标签等,可同时编辑多个文档。

Bluefish 当然不能算是一款 Python 的 IDE 工具,但如果做 Web 相关的开发( DjanGo、TurboGears 等),用它来写程序显然很方便。而且 Bluefish 相当友好,基本上不用学就会用,可以使我等菜鸟尽快将精力转移到 Python 的学习上来。

Discuss

综合比较

初学者首选IDLE / PythonWin / MacPython

Emacs / Vim / Eclipse+PyDev是强大且通用的解决方案,取决于你更熟悉哪个环境,如果都没有基础,更推荐Eclipse+PyDev。

SPE是纯Python实现的简洁型IDE中功能最完善的,写小脚本的时候很方便。

Boa长处在基于wxPython的快速GUI开发。

如果有条件选择商业工具,WingIDE或者Komodo都是优秀的产品。

其它比较Python IDE的文章:

"Charming Python"专栏作者David Mertz的测评文章,写于2001年,许多内容已经过于陈旧了,但仍有参考价值。

较新的两篇Python IDE测评文章(原地址需代理才能访问,后一个附件链接是本地的备份),分别比较了PyDev、Eric3、Boa Constructor、BlackAdder、Komodo、WingIDE、SPE。

下面哪个不是python常用的开发工具_Python程序员常用的IDE和其它开发工具相关推荐

  1. java excel 插件开发工具_程序员常用的15 种开发者工具推荐

    程序员常用的15 种开发者工具推荐:Java 线上诊断工具 Arthas.IDE 插件 Cloud Toolkit.混沌实验注入工具 ChaosBlade.Java 代码规约扫描插件.应用实时监控工具 ...

  2. python库有什么用_Python程序员必知什么 常用的Python库有哪些

    Python程序员必知什么?常用的Python库有哪些?Python有很多丰富而强大的库,这是它成为人工智能与数据分析领域强者的关键.有很多Python开发人员想知道常用的Python库有哪些,接下来 ...

  3. python ios开发环境_程序员的macOS系列:Mac开发环境配置

    1.前言 最近在写<程序员的macOS系列>文章,之前写的第一篇 程序员的macOS系列:精选Mac App,大家都希望楼主尽快更新,结果拖到了2个月后,所以今天终于更新啦!其实macOS ...

  4. python oj刷题网站_程序员常用的刷题网站

    1.Lintcode Lintcode.com--LintCode网站是国内较大的在线编程&测评网站.此网站提供各大IT公司的算法面试题类型,行分门别类,由简单到中等,再到难,便于不同水平的程 ...

  5. fish工具_Python程序员使用哪些开发工具

    Python程序员使用哪些开发工具?很多Python学习者想必都会有如下感悟:最开始学习Python的时候,因为没有去探索好用的工具,吃了很多苦头.后来工作中深刻体会到,合理使用开发的工具的便利和高效 ...

  6. python程序设计是干什么的_python程序员有学设计模式的必要吗?

    是真的. 首先,绝大部分人一旦开始写实际项目,都会遇到扩展性和可读性的问题.学习设计模式当然可以非常有效的提升代码质量. 需要明确的是,在学习设计模式之前,你需要有一定的代码量做支撑,换句话说,需要把 ...

  7. 怎样用python定位别人在哪_python程序员教你用微信给对方定位!你说回家!却还在外面鬼混?...

    跟我说回家,却还在外面鬼混? 其实很多情侣之间存在很多这样的信任问题,不相信他,去查岗,可能会恶化两人之间的关系:比如跟我说回家了,但是想知道他是否真的回家了,打电话.打视频查岗吗?今天教大家一个利用 ...

  8. Java 程序员常用的开发工具

    1.常用开发工具 作为一名Java程序开发人员,可以的选择集成开发环境IDE(Integrated Development Environment)非常多,得益于Java是一门开源语言.有开源免费的: ...

  9. BAT程序员常用的开发工具

    阿里篇 一.Java 线上诊断工具 Arthas Arthas 是阿里巴巴 2018 年 9 月开源的一款 Java 线上诊断工具. 使用场景: 这个类从哪个 jar 包加载的?为什么会报各种类相关的 ...

最新文章

  1. C语言 #ifndef 引起的redefinition of xxx 问题解决
  2. C++标准库:使用std_list作为链表
  3. 宁波python学习_python学习第十五天
  4. python+xlrd+echarts数据可视化demo
  5. java多线程对数组求和_java 多线程 求和
  6. 深入理解Javascript之执行上下文(Execution Context)
  7. Unity-Animator在Editor状态下的单个/批量预览工具
  8. 第十一周项目3-程序的多文件组织
  9. Unity3D调用摄像头显示当前拍摄画面
  10. 2017中国大数据技术大会12月在京召开
  11. 我要成为一名优秀的程序员!
  12. 物联网-移远M26模块OpenCPU开发第2讲(FLASH处理)
  13. Dubbo自定义日志拦截器 1
  14. thinkphp 手机号和用户名同时登录
  15. 5号字对应的数字字号_写好公文的几个数字口诀
  16. Android 热补丁实践之路
  17. springboot中Word转PDF
  18. Visio绘制电路图
  19. 应用宝apk_我花3天对比了8个手机应用商店 发现了这个你从未留意过的细节
  20. 北京邮电大学教授杨义先:大数据背景下的信息安全风险及防御

热门文章

  1. 运动健身耳机什么好?四款运动蓝牙耳机之好评
  2. SMAA算法详解 - SearchTex
  3. Teams Bot App 用户互动
  4. python读取日志匹配日志信息(二)
  5. SMTP邮箱服务器发送邮件
  6. NepCTF2021 梦里花开牡丹亭
  7. 互联网晚报 | 10月29日 星期五 | 理想汽车第10万辆整车正式下线;微博新增“炸毁评论”功能;《长津湖》续集正式官宣...
  8. 用计算机数字唱歌,悬赏跪求计算器各种歌曲数字谱(最好带和音)
  9. opencv安装过程出现opencv_world300d.dll加载失败
  10. [课业] 25 | 数据库基础 | 基础SQL查询语言