常用Python IDE介绍及对比

常用Python IDE介绍及对比

集成开发环境(IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。所有具备这一特性的软件或者软件套(组)都可以叫集成开发环境。

大概在2年前注册Kaggle时,我在Kaggle社区提的第一个问题,就是关于Python IDE,最后收到了88条回复。这里把所有回复的信息,并结合自己的使用心得,整理在这篇文章里,希望对大家有帮助。

总的来讲,没有最好的IDE,只有最适合自己的IDE。不同IDE的定位和拓展功能模块虽有些差异,但在实际应用过程中,我们总会根据使用场景、自己的能力和习惯偏好来选择相应的IDE。我个人在日常工作中,目前用的最多的是:Jupyter+VSCode+Pycharm组合。

按照演绎法,先放结论,如下是我认为的Python IDE选择进阶之路。(当然有同学会有不同想法,欢迎交流讨论。做完这张图,我发现顺便给不同的IDE也做了个"用户画像"...)

本篇会涉及到的Python IDE包括:(内心os:先写这么多吧,写多了也没人看. )

  • Jupyter
  • Pycharm
  • Visual Studio Code
  • Spyder
  • Vim
  • Sublime Text
  • Atom
  • Notepad++
  • Google Colab
Jupyter

(官方下载地址:Project Jupyter | Home)

Jupyter官方介绍了两款产品:Jupyter Notebook和Jupyter Lab,我们可以简单理解为Jupyter Lab是Jupyter Notebook的升级版,是包含了Notebook的下一代用户界面。

Jupyter Notebook 是一个款以网页为基础的交互计算环境,可以创建Jupyter的文档,广泛用于数据分析,数据可视化和其他的交互和探索性计算中。Jupyter Lab中有模块化的界面,可以在同一个窗口同时打开好几个notebook或文件(HTML, TXT, Markdown等等),全都会以标签的形式展示。我个人通常会以Jupyter Notebook做一些快速的函数/模型校验和临时的数据处理和可视化工作,简单说就是些PoC (Prove of Concept) 和临时工作会用到Jupyter Notebook。

PyCharm

(官方下载地址:PyCharm:JetBrains为专业开发者提供的Python IDE)

正如PyCharm介绍文案中写的“面向专业开发者的Python IDE,在一个地方获得所有的Python工具”。顾名思义,PyCharm是一款“重量级”的IDE,启动慢,加载项多,配置起来相对复杂。作为“重量级”的IDE,当然附带的功能也是最多的(比如智能代码补全、 实时错误检查和快速修复功能,轻松进行项目导航等等),因此使用PyCharm最多的场景是做大规模模型整合部署,网页开发和系统开发,工程项目/产品解决方案交付等等。

我之前用PyCharm写过一个局域网网页小产品,还有工作中一些固定化、流程化的脚本我都会优先选择PyCharm。最近想总结一些常用的模块到自己的Python库,方便调用,我也会选择PyCharm。(如下链接所示)

我的数据分析Use Case汇总 - 知乎 (zhihu.com)

Pycharm公司的其他产品如下:我都没有用过,不过听别人讲过,功能很强大。

Visual Studio Code

(官方下载地址:Visual Studio Code - Code Editing. Redefined)

作为一个颜控,我真是越来越喜欢VSCode了。首先,它帮我取代了Windows命令行,直接在VSCode里起一个Terminal,可以实现所有在windows命令行里的操作(当然有时候还是会直接'Windows+R: cmd');

其次,它帮我取代了Jupyter,view里选command palette,直接起一个Jupyter Notebook,可以在这里同Jupyter一样,交互式的去快速验证一些函数/模型和临时的数据处理及可视化工作。

最后,它也可以帮我取代PyCharm,在Extentions里面可以搜索到一些PyCharm相关的拓展程序,也可以直接进行.py的编辑。相比于PyCharm,VSCode既集成了丰富的拓展性,又相对"轻量化",这也是我喜欢的另一个重要原因。

Spyder

(官方下载地址:Home — Spyder IDE (spyder-ide.org))

说起来,Spyder的logo挺有意思的:一个蜘蛛网上面有一条蛇。我们知道python这个单词有蟒蛇的意思,这个logo的意思是说要把python牢牢罩在蜘蛛网里么,哈哈。最开始我没有太关注Spyder,是安装了Anaconda后,里面自带Sypder IDE才点开尝试了一下。轻量度低于PyCharm,高于Jupyter/VSCode,用起来没什么特别的。只是有一点比较特别,Spyder里面的界面布局可以高度来按照Matlab/Rstudio等来设置,我以前用过Matlab/Rstudio,在Spyder设置后,真的差异不大,感觉除了语法不一样外,就像是在用Matlab/Rstudio。所以,我认为,Spyder的目标人群,就是之前非常熟悉Matlab或Rstudio这类软件的用户,他们在Spyder里可以省去熟悉IDE节目的时间成本,直接编写Python代码。如果大家之前没用过Matlab,或Rstudio等,建议大家直接PyCharm吧,Spyder没什么特殊优势。

Vim

(官方下载地址:welcome home : vim online)

Vim我没有用过,但是听很多人提起过。(VIM = Vi IMproved)Vim是一款功能强大、高度可定制的文本编辑器。设计理念是命令的组合。用户学习了各种各样的文本间移动/跳转的命令和其他的普通模式的编辑命令,并且能够灵活组合使用的话,能够比那些没有模式的编辑器更加高效的进行文本编辑。同时VIM与很多快捷键设置和正则表达式类似,可以辅助记忆。建议:具有一定基础后再考虑使用。

Sublime Text

(官方下载地址:Sublime Text - A sophisticated text editor for code, markup and prose)

Sublime Text这类IDE是代码文本编辑器,是非常“轻量级”的IDE,我们可以简单的认为是windows txt文本文件,按照不同代码语言规范的进行特殊标识的显示,并有一些基于文本处理层面的高级插件的一款软件。业界曾流传着这样的说法,新手的IDE,拓展功能越多越好;高手的IDE,文本框就足够了。但是Sublime Text是'收费+闭源'的模式,在当下这个开源的时代,应该会因此丧失掉很多用户吧。据说,Sublime Text最初设计的初衷是,让其成为一个具有丰富拓展功能的Vim。建议:具有一定基础后再考虑使用。

Atom

(官下载地址:Atom | 社区:Atom 中文社区 (atom-china.org))

Atom同样是一款文本编辑器,我也没有用过,听人说过。看过界面和logo,感觉还挺极客的,功能也比较酷炫。开发团队将 Atom 称为一个“为 21 世纪创造的可配置的编辑器”,它拥有非常精致细腻的页面,提供了与 Sublime Text 上类似的 Package Control (包管理)功能,可视化插件的配置,以及插件的使用帮助以及对应的github的地址。很大层度上方便了开发人员将 Atom 打造成真正适合自己的开发工具。建议:具有一定基础后再考虑使用,追求极客酷炫的首选文本编辑器。

Notepad++

(官方下载地址:Notepad++ (notepad-plus-plus.org))

Notepad++同样是一款文本编辑器,轻量化易操作。平时可以把它当作记事本来用,写代码时可以将其作为编辑器来用,有完整的功能化接口及支持多国语言的编写功能。但是由于author有点不友好(支持gd,zd...)不想过多介绍了。感兴趣的同学自己了解,酌情使用。

Google Colab

(官方地址:colab.research.google.com | 需要梯子)

Colaboratory(Colab)是一个 Google 研究项目,旨在帮助传播机器学习培训和研究成果。它是一个Jupyter Notebook环境,不需要进行任何设置就可以使用,并且完全在云端运行。使用免费,就是需要梯子,有梯子的同学可以尝试一下,效果应该很不错。Kaggle论坛上,很多人推荐Colab的一个非常重要的原因是:GPU! GPU! GPU!!! (深度学习必不可少之利器)


先写这些吧,后面看心情再更新 </>

[专栏目录] 数据分析&数据产品 {@_@} - 知乎 (zhihu.com)

编辑于 2021-01-10 21:21