几款常用的 Python 编程 IDE 对比

几款常用的 Python 编程 IDE 对比

工欲善其事,必先利其器。


TL; DL

  • IDE 无所谓绝对的优劣,实际在于使用者的取向。对于入门者而言选择是至关重要的,在选择更高级、更完善的 IDE 的同时,要掂量好可能付出的学习成本。
  • PyCharm、VS Code 好比高级厨房,厨具很齐备,能想到的基本可以做得到;而 Jupyter 系列好比私人作坊,工具虽少,却样样是个好帮手。
  • PyCharm、VS Code 让人感觉更像在「做项目」,强调流程的整体性。Jupyter 系列则感觉更像在「写代码」,强调流程的独立性,往往是「拆箱即用」「用完即走」。以上错觉是由各自的特性引起的。
  • 在数据科学这一领域,数据分析等偏业务的从业者可以选择 Jupyter 系列,数据挖掘、机器学习等偏工程类的可选择 Pycharm 和 VS Code。


I. PyCharm

PyCharm Logo

Pycharm 是捷克软件公司 JetBrains 开发的一款受众广泛的 Python 编程 IDE,融合了语法高亮、项目管理、代码重构、单元测试、版本控制等重要功能。因为功能实在太多,学习成本也变得非常大。如果你曾经接触过 JetBrains 的其他产品,例如 IntelliJ Idea,那么这款 IDE 最适合不过了。当然如果没有也没太大关系,这款 IDE 也很适合有做过项目的人群,因为熟悉项目管理的一系列流程,哪怕说一天内上手也不在话下。

项目导向

拥有清晰的文件架构视图和非常好用的全文检索功能。

快速重构代码

右键 Refactor 点击或按下相应重构项(例如重命名、更改签名等)的快捷键,可以快速重构代码。

Debugging

单击代码行布置断点后,进入代码调试模式,就可以查看代码执行过程和变量了。

快捷键

快捷键是 IDE 的核心要义,对于提高 coding 效率有至关重要的作用。PyCharm 的 keymap 多而全,还支持自定义。

PyCharm Debugging 界面


II. Jupyter

Jupyter Logo

根据官方的介绍,“Jupyter Notebook(现已更名为 Jupyter)是个集成文本,集成了数学公式、代码和图形的可分享文本。”

Jupyter Notebook

Jupyter Notebook 界面

因为简单、共享的特性,Jupyter Notebook 很快成为了数据处理不可或缺的工具,现在已然渗透在数据分析和机器学习的方方面面。其实,Jupyter Notebook 源于一个叫做文本化编程的概念,是由 Donald Knuth 在 1984 年提出的。他认为文本化的编程,是完全的文本和代码交错在一起,而不是分成两个独立的部分。代码文档是写给人看的,不是给电脑看的。 的确,这会给别人分析或者回溯你的代码提供很大的便利。

文本化编程原理

强交互

一旦写完代码,你便可以用时按下 Ctrl + enter 或者 Shift + enter 组合键来执行当前的代码片段。

JIT

当代码提交被执行后,IDE 会得到及时 (just-in-time) 响应,把结果附在当前单元格末尾。

模块化

Jupyter Notebook 的主要构成元素是单元格 (cells),它们除彼此之间仅有上下流转关系外,不会受到互相的约束,使得不同功能代码的独立性得到了保持。在 notebook 中,你可以自由地移动或改变单元格,来组织(运行)顺序或呈现形式。

“文武双全”

可以切换单元格的类型,例如选择 markdown 时,将启用 Markdown 语法下的文本编辑模式,这时候你围绕上下文和结果,随心所欲地完成创作;当选择 code 时,单元格中的任何内容将视为代码被 Python 解释器执行,你可以在这个模式下完成数据处理、图像制作等等。

社区友好

众多数据竞赛平台都支持运行 Jupyter 内核,极大方便竞赛参与者进行数据探索和迭代实验。

Kaggle是全球最热门的数据竞赛平台,也是数据科学相关话题交流最广泛和活跃的社区,现已被 Google 收购

Jupyter Lab

根据官方介绍,“Jupyter Lab 是下一代的 Jupyter Notebook”。可见在未来 Lab 将取代 Notebook。

项目管理

与 Jupyter Notebook 不同的是,Jupyter Lab 增强了对项目这一概念的实现。任何有关项目管理的流程,都能在同一个窗口甚至一个栏目下找到并完成。

不得不说,这才让人有了 “Jupyter 就是 IDE” 的感觉。


III. Visual Studio Code

VS Code 支持多种语言(内核),其中就包括 Python

Visual Studio Code (VS Code) 是微软出品的轻量、可定制的开发软件,是一款属于 Visual Studio 系列的产品。因为极好的通用性和扩展性,加上本身打着大厂的铭牌,迅速在业界流行开来。

调和

VS Code 的主要特性和 Jupyter 和 PyCharm 的大部分特性一致,这里不再赘述。我们可以认为它就是两者的结合体。


IV. 总结一下

下面总结以上几款 IDE 比较受关注的点:

Jupyter Notebook PyCharm VS Code Jupyter Lab
项目管理 文件视图 仅显示最近一级
变量视图 需要插件 仅限 debugger 需要插件
文件操作 全局检索/替换 ×
新建/移动/删除
测试/Debug ×
版本控制/Git 需要插件 需要插件
文本编辑 跳转 × ×
插入光标 多点
多行 × ×
检索/替换
词典/语法表达 × ×
纠正提醒 ×
代码补全 需要插件 需要插件
代码重构 冲突识别 × ×
参考建议 × ×
采样/提取 需要插件 需要插件 需要插件
快速修复 × × ×
代码分析 成员结构 × ×
错误识别 × ×
参照关联 × ×
运行指定行 × ×
社区生态 话题数量多 ×
更新/迭代快 × × ×
插件品类多 官方 × ×
第三方 × × ×
其他 免费 ×
即装即用 自动配置运行环境 ×
占用资源小 × ×
多语言 需要插件 需要插件
自定义/个性化 外观 需要插件
字体 × ×
模板 × ×
快捷键 × ×
综合 加权得分 = Σx(i) · p(i) / 0.1n 3.3 8.2 8.6 4.7


V. 写在最后

说到底,工具真的没有优劣之分,好不好用的感受也因人而异。因此,没有一点必要为了此长彼短争执不下,甚至产生偏见和歧视。

工具不是目的,而是为目的服务。适合自己,那就行啦!


VI. 进一步阅读

# AI, Python

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×