设为首页 收藏本站
查看: 1454|回复: 0

[经验分享] Python主流IDE对比:Eric VS. PyCharm

[复制链接]

尚未签到

发表于 2018-8-16 08:03:10 | 显示全部楼层 |阅读模式
  IDE, 全称是Integrated Development Environment,翻译过来就是集成开发环境。Python的开发从2010年5月算起,不知不觉中,到现在已经是第七个年头。
  这六年里,舍得最常用的IDE是Eric6(一开始是5.x版本),也试用过圈内闻名的PyCharm、WingIDE和Eclipse(+PyDev插件),算是有些心得。今天,着重对Eric6和PyCharm 2016.3作一下简单的评测。
  颜值
  Eric6是基于PyQt开发的,程序运行甚至只用一个BAT文件来调用,界面相对而言略丑。PyCharm基于Java开发,自带的主题很漂亮,风格比较统一。在颜值这一点上,无疑是PyCharm胜出。
  顺带提一下WingIDE,虽然它也带了很多款主题,但整个窗口中有些部位是不受主题控制的。举个栗子,当你选择深色的主题时,窗口左下角往往会有一块白色的控件,忒刺眼。
  速度和内存开销
  从启动到打开一个项目,舍得掐着秒表测试了这几款IDE,数据如下:

  • 最慢的是PyCharm,平均需要18-20秒左右。就算把插件干掉只剩两个,再将Xms和Xmx参数适当调整,跑出最快的成绩是16秒5;   
  • Eric平均只用11秒;   
  • 最快的是WingIDE, 只用7秒;
  内存开销上,PyCharm是大户,动辄就是吃掉你300-400MB的内存。机子内存小的童鞋要当心了!
  UI和资源编译
  开发过程中难免要对UI和资源文件进行调整,所以IDE中自然需要将这两项的编译工作集成进来。
  Eric6是原生支持UI和资源文件编译的,它的开发者早就想到了我们需要这项功能。

  PyCharm作为一个专业的Python>  不过PyCharm这个外部工具的设计还是值得赞赏的,你可以直接把打包命令(我通常用cx_freeze)直接整合进去,这样就方便多了。
  智能缩进
  在Python的语法中,缩进是非常重要的一项。开发过程中,缩进若能更智能化一点,自然写代码的速度也会快一些。
  在这方面,做得最优秀的是Eric6。它的牛x之处在于,无论你的光标键在哪个位置,只要你按TAB键,程序就会根据上面的代码选择合适的缩进位置。
  PyCharm亦有类似的设计。它的智能缩进操作英文名叫Emacs Indent(建议将快捷键TAB设置给它),国内的汉化莫名其妙地翻译成了“宏选项卡”,这一定是外行人干的。
  但Emacs Indent在处理整块缩进的时候略显无力,当我们要将整块代码往前移的时候,只能使用另一项叫作“取消缩进内容”的操作,而Eric6只要一个TAB键就足够了。
  字体缩放
  虽然我们可以在设置中给IDE的编辑器设一个特定的字号,但在实际开发中,还是免不了要适当缩放字体。尤其是大屏幕,字体适当放大一些,眼睛不至于那么遭罪。
  字体的缩放这两款IDE都有。只不过,Eric6是早已设置好快捷键的(用Ctrl+=/-,或Ctrl+滚轮),而在PyCharm中,你必须手动设置这个快捷键。
  这一轮,算打成平手好了。
自动补空格
  PEP8的规范要求在逗号、运算符号之类的内容后面加一个空格,这一点Eric做得不错,在你输入一个逗号后,它会自动给你补一个空格,而PyCharm显然考虑得没有那么周到。你不得不手动一个个敲空格,或留着到最后使用Reformat File功能来纠正。
代码自动补全和代码规范化
  两款IDE的代码自动补全做得都挺好。硬要挑出一个更好的来,我会把票投给PyCharm, 它的智能化程度似乎(我没法给出更精确的评价,建议自行体会)更高一些。
  PyCharm除了自动补全,还会用类似拼写检查的方式检查你的代码,当你输入的代码不符合PEP8之类的规范时,PyCharm会适时提醒并对该部分代码作出标记。这个功能确实很贴心,我有理由相信用PyCharm会帮助我们将代码写得更加规范。
  此外,PyCharm还会对当前方法下所用的变量进行检查,当有变量出现未使用、不一致、输入错误等情形时,PyCharm亦会将其一一标出,让你一目了然。
版本控制
  版本控制也可算是IDE的标配了吧!Eric6和PyCharm都有版本控制的模块,不过舍得认为,PyCharm在这一块做得更细一些,和GibHub结合得很好,舍得用得很趁手。
数据库连接、查看
  这项功能只能算是可选配置了。两款IDE都带有数据库内容浏览的功能,它的方便之处在于,我们要查看数据库中某项数据时,可以不必打开专用的数据库管理工具(比如SQLite的SQLite Expert, PostGreSQL的PG Admin,MySQL的PHPMyAdmin等),直接在IDE内查看。
  Eric6自带一个内建的SQL浏览器,界面相对简陋,而且每次打开都必须重新设置,不够方便。
  PyCharm是通过Database Tools and SQL这款插件来实现数据库连接和查看的功能,用来临时查看一下数据是足够了。
书签
  在开发过程中,我们经常需要在一个文档中不同的位置间切换,此时书签功能会给我们带来很大的便利。
  两款IDE都有书签功能,PyCharm做得更好一点,它的书签不会因为你退出程序而清除。而Eric6则会在你每次退出程序时,清空你的书签设置。
TODO
  舍得在堆代码的时候,想到一些下一步要完善的功能之类的内容时,往往会在文档中插入一行,行首写上“# todo,”,然后把当时的想法写进去。这样日后就能根据todo的标记和内容来逐渐完善自己所开发的软件。
  两款IDE都支持Todo功能,它们会把你在当前项目中的每一行标有todo的内容都搜集起来,以供你随时查看。只是在功能的完善性上,略有差距:

  • PyCharm在你输入“# todo,”的时候就将这一行进行高亮处理,让它变得非常醒目,Eric6默认是不会对“# todo,”作高亮处理的;   
  • PyCharm的todo支持大小写,Eric6默认只支持大写,要想支持不同的格式,需要单独设置;
  相比之下,PyCharm以微弱的优势胜出。
帮助文档
  Eric6自带一个WebKit内核的帮助浏览器,当你设置好Python/PyQt/Pyside/Qt等帮助文档的路径后,可以在帮助菜单中直接点击这些文档的链接,Eric6就会调用帮助浏览器来显示这些文档。
  PyCharm虽然有一个外部文档的设置和对应的菜单命令,但功能实在太弱比,应该好好完善一下才是。
  另外PyCharm虽然提供了一个Search EveryWhere的“强大”功能,但由于搜索结果匹配往往不能尽如人意,使得此功能形如鸡肋。
结语
  通过上面的比较和分析,相信大家自会得出自己的答案。简单说一下舍得的观点:

  • 如果你是个颜控,请选择PyCharm;   
  • 如果你的电脑配置略低(尤其是内存),跑PyCharm感觉慢、卡,请选择Eric6;   
  • 大多数功能,这两款IDE都大同小异。舍得最介意的是,PyCharm没法在逗号后居然不能自动补空格,希望开发者能在后续的版本中进一步完善;   
  • 至于很多仍在使用非IDE(比如用vim、emacs、sublime text之类的编辑器)的童鞋,舍得的建议是,IDE可以让你的开发效率更高。看上去你用这些编辑器也能完成大部分工作,但别忘了,你费尽九牛二虎之力搞定各种插件的同时,IDE上这些功能早就已经非常成熟了,何必自己再去造轮子呢?
  本文版权归舍得学苑所有,欢迎转载,转载请注明作者和出处。谢谢!
  作者:舍得
  首发:舍得新浪博客

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-552407-1-1.html 上篇帖子: python:分享美女图 下篇帖子: 基于Python+Django的Kubernetes集群管理平台
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表