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

[经验分享] Python IDE的选择 —— 以智能代码功能为标准

[复制链接]

尚未签到

发表于 2015-4-22 07:01:00 | 显示全部楼层 |阅读模式
  
  大年初二开始学Python,首先得选一个开发环境。由于以前一直用Visual Studio,选IDE的时候首先得看是不是有智能代码(Call-Tips和 Auto-Complete)功能,如果没有的话,对于我这样的新手实在太痛苦了,我可不想去记那些库、包和函数名,最好一点 . 就能全出来。
  
  看了《python IDE 介绍》这篇文章,把里边提到的IDE都下载了试用,最后选择了PythonWin Editor,原因是它的Call-Tips功能比较出众,只要import一个包,然后F5,它的所有函数、变量都可以Call-Tips出来,非常方便。不过PythonWin也有很大的问题,就是不能用来编写wxPython和PyQt的程序,一运行就崩溃。google一下,原因是它的MainLoop与wxPython和PyQt的相互冲突,所以用PythonWin编写GUI,只能用它自己提供的win32ui,有点像MFC的一个东西。
  
  SPE和BOA看介绍说还不错,不过安装后在我机器上总出错,懒得配置它们。
  
  原作者极力推荐的Eric4,试用了一下,发现Call-Tips功能还是比较弱的,必须得先把导入的包用它的工具API Generator生成API,而且只能对包里的类和函数Call-Tips,实例化对象后就不行了。例如import wx,wx.后可以出来变量,但b= wx.Button(……后,b.就什么都没有了。上Eric4的讨论区搜索,开发者也承认这是一个问题,所以还是放弃了Eric4。
  
  eclipse+pydev要带一个JAVA运行时才能跑,在我机器上慢的很,我跑Python的机器内存只有256M,只能用穷人的工具了。
  
  UliPad,一个国产的IDE,本来想支持它,后来发现它的Call-Tips和Auto-Complete功能实在有限,似乎只能对Python内置的包起作用,导入的外部包都不行,所以只好放弃它了。如果以后UliPad增强了这方面的功能,我还是会优先选择它。
  
  WingIDE 的Call-Tips和Auto-Complete功能很强大,比PythonWin还好,不仅能购提示代码,还能在右侧的工具窗里显示doc,不过是商业版的,而且在我的老机上启动也比较慢。WingIDE的101版本是Free的,但恰好比专业版少了Call-Tips和 Auto-Complete功能。
  
  Kodomo也是一个商业版软件,Auto-Complete功能没有WingIDE好,免费版的Kodomo Edit不能调试,也没有Auto-Complete,和WingIDE 101类似。
  
  vim和emacs以前学linux时用过(遥想2002年上大四时,偶还考过TurboLinux的认证管理员,现在证书已经发黄,一直还是在用windows),一直没搞明白命令模式和编辑模式,看来我受MS毒害太深了,暂时不敢用,等以后没办法的时候再说吧。
  
  另外,找了一个不太常见的IDE叫Spyder,它需要导入API才支持Call- Tips功能,和Eric4类似,而且API是和Eric4兼容的,用Eric提供的API Generator可以生成Spyder的API。但Spyder比Eric要轻量的多,安装文件只有1.67 M,调试等功能也不错。Spyder是python(x,y)的一部分,完整的python(x,y)有400多M,集成了科学计算常用的python第三方库,不过它的体积是在是太庞大了,而且我需要的numpy、matplotlib和networks库都单独安装了,其他的库暂时还用不到,所以没有下载。
  
此外,还下载了Leo、PyScripter等一堆不太出名的Python IDE,不过Call-Tips都不是太理想,水平尚在UliPad之下。
  
  挑来挑去,最后还是选了PythonWin + Spyder。如果要开发GUI,就在PythonWin里编辑代码(为了用它的Call-Tips功能),在Spyder调试运行(PythonWin直接运行会崩溃),这两个软件都可以自动监测源文件变化,用他们打开同一个源代码文件来回切换就可以了,没发现什么冲突。如果不做带GUI的东西,就直接在PythonWin里编辑、运行就可以。
  
  似乎很笨是吧?但我还没找到好的解决方案。除了商业版的WingIDE,真没有一个免费的Python IDE可以提供好的Call-Tips功能吗?

运维网声明 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-59336-1-1.html 上篇帖子: python中元类的介绍 下篇帖子: python调用外部子进程,通过管道实现异步标准输入和输出的交互
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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