链客,专为开发者而生,有问必答!

此文章来自区块链技术社区,未经允许拒绝转载。

Jupyter 项目提供的魔法般的开发体验很大程度上得益于它的 IPython 基因。

最近刚刚写过我为什么觉得觉得 Jupyter 项目(特别是 JupyterLab)提供了一种 魔法般的 Python 开发体验。在研究这些不同项目之间的关联的时候,我回顾了一下 Jupyter 最初从 IPython 分支出来的这段历史。正如 Jupyter 项目的 大拆分™ 声明 所说:

“如果你不明白 Jupyter 是什么,这么说吧,它拥有和 IPython 同样的代码,并且是由同一批人开发的,只不过取了一个新名字、安了一个新家。”

下面这个注脚进一步说明了这一点:

“我从声明中解读出来的信息是,‘Jupyter 和 IPython 非常相似,但是拥有多种语言’,这也可以很好地解释为什么这个项目的名字已经不再需要包含 Python,因为当时它已经支持多种语言了。”

我明白 Jupyter Notebook 和 IPython 都是从同样的源代码里分支出来的,但是不太清楚 IPython 项目的现状。在大拆分™ 之后它是已经不再被需要了,还是在以另一种方式延续着?

后来我惊讶地发现,IPython 仍然不断在为 Python 使用者提供价值,它正是 Jupyter 体验的核心部分。下面是 Jupyter 常见问题页面的一段截取:

有什么语言是需要预装的吗?

是的,安装 Jupyter Notebook 会首先安装 IPython 内核。这样我们就可以在 notebook 上运行 Python 语言了。

现在我明白了,在 JupyterLab(以及 Jupyter Notebook)上编写 Python 程序仍然需要依赖 IPython 内核的持续开发。不仅如此,IPython 还充当了最为强大的默认内核的角色,根据 这份文档,它是其它语言内核之间的枢纽,节省了很多开发时间和精力。

现在唯一的问题是,IPython 本身可以做什么呢?

IPython 如今的作用

IPython 提供了一个强大的、交互性的 Python shell,以及 Jupyter 的内核。安装完成之后,我可以在任何命令行运行 ipython 本身,将它当作一个(比默认 Python shell 好太多的)Python shell 来使用:

$ ipython

Python3.7.3(default,Mar272019,09:23:15)

Type’copyright’,'credits’or’license’formore information

IPython7.4.0–An enhanced InteractivePython.Type’?'for help.

In[1]:import numpy as np

In[2]: example = np.array([5,20,3,4,0,2,12])

In[3]: average = np.average(example)

In[4]:print(average)

6.571428571428571

这就让我们发现了一个更为重要的问题:是 IPython 让 JupyterLab 可以在项目中执行代码,并且支持了一系列被称为 Magic 的功能(感谢 Nicholas Reith 在我上一篇文章的评论里提到这点)。

IPython 让魔法成为现实

JupyterLab 和其它使用 IPython 的前端工具可以让你感觉像是在最喜欢的 IDE 或者是终端模拟器的环境下工作。我非常喜欢 点文件 快捷键功能,Magic 也有类似点文件的特征。比如说,可以试一下 %bookmark 这个命令。我把默认开发文件夹 ~/Develop 关联到了一个可以在任何时候直接跳转的快捷方式上。

Screenshot of commands from JupyterLab

%bookmark、%cd,以及我在前一篇文章里介绍过的 ! 操作符,都是由 IPython 支持的。正如这篇 文档 所说:

Jupyter 用户你们好:Magic 功能是 IPython 内核提供的专属功能。一个内核是否支持 Magic 功能是由该内核的开发者针对该内核所决定的。

写在最后

作为一个好奇的新手,我之前并不是特别确定 IPython 是否仍然和 Jupyter 生态还有任何联系。现在我对 IPython 的持续开发有了新的认识和,并且意识到它正是 JupyterLab 强大的用户体验的来源。这也是相当有才华的一批贡献者进行最前沿研究的成果,所以如果你在学术论文中使用到了 Jupyter 项目的话别忘了引用他们。为了方便引用,他们还提供了一个 现成的引文。

如果你在考虑参与哪个开源项目的贡献的话,一定不要忘了 IPython 哦。记得看看 最新发布说明,在这里可以找到 Magic 功能的完整列表。

对 Python 开发者而言,IPython 仍然是 Jupyter Notebook 的核心相关推荐

  1. ipython和jupyter哪个好_对Python开发者而言,IPython仍然是Jupyter Notebook的核心

    如果你不明白 Jupyter 是什么,这么说吧,它拥有和 IPython 同样的代码,并且是由同一批人开发的,只不过取了一个新名字.安了一个新家. 下面这个注脚进一步说明了这一点: 我从声明中解读出来 ...

  2. 【Python数据挖掘】数据挖掘简介及Jupyter notebook操作介绍(图文解释 超详细)

    需要完整PPT请点赞关注收藏后评论区留言并且私信~~~ 一.数据挖掘简介 面对大量的数据,迫使人们不断寻找新的工具,对规律进行探索,为决策提供有价值的信息.数据挖掘有助于发现趋势,揭示已知的事实,预测 ...

  3. Python环境的安装(Anaconda+Jupyter notebook+Pycharm)

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文总结了Windows下Python环境的安装,包括Anacon ...

  4. [转载] Python全栈(1)—— Python如何快速下载库与jupyter notebook 的基本使用

    参考链接: Python Jupyter Notebook入门 文章目录 前言Python如何快速下载库jupyter notebook基本使用 前言 笔者最近发现学到现在,还没有认认真真系统的学一下 ...

  5. Jupyter lab add kernel Python+Julia+R 【jupyter Notebook 切换Python环境】and【在jupyter Notebook中安装第三方库】

    新增虚拟环境 conda create -n py2 python=2.7 进入python2的环境 conda activate py2 安装python2的内核并应用 python2 -m pip ...

  6. python内核死亡的原因_python - Jupyter Notebook内核在编译神经网络时死亡 - SO中文参考 - www.soinside.com...

    在创建和编译keras密集神经网络时,我的jupyter笔记本内核总是死掉.终端给我一个消息,提示它无法分配空间,并且CUDA内存不足.我的GPU(2060 Super)已经多次运行此模型,只是没有在 ...

  7. Jupyter notebook的内核是什么?Ipython

    Ipython! Ipython! Ipython! 所以在Jupyter notebook能够使用Ipython的如: %run:运行python文件 %edit:使用编辑器打开当前函数编辑 %sa ...

  8. 第二章 Pyton语言基础、Ipython及Jupyter notebook(?功能,%run命令,魔法函数)

    ?功能 在一个变量名的前后使用问号(?)可以显示一些关于该对象的概要信息: b=[1,2,3] b? 假设已经写好了如下函数(你可以在Ipython或jup中复现): def add_numbers( ...

  9. 墙裂推荐,Python开发者不容错过的7个VS Code扩展

    Visual Studio Code(简称 VS Code)是一个由微软开发,同时支持 Windows. Linux 和 macOS 等操作系统的免费代码编辑器,它支持测试,并内置了 Git 版本控制 ...

最新文章

  1. SSM+微信小程序实现物业管理系统
  2. 第二阶段冲刺--团队站立会议03
  3. 用WidgeDuino创建一个SCADA(监控与数据採集)系统
  4. libmemcached安装报错
  5. java怎么把大小写转换_JAVA 如何将String进行大小写转换
  6. 深入浅出extjs第2版_LINGO实例教程第2版第2期上线
  7. 利用QCommonStyle绘制自定义的窗体部件
  8. vlc文件服务器局域网,vlc流媒体服务器配置
  9. Elasticsearch教程-从入门到精通-ES索引迁移
  10. Android安卓|安卓概述、安卓开发、安卓入门、安卓架构
  11. 用 Java 语言,写一个植物大战僵尸简易版!
  12. 渔村小厂,如何成长为5G霸王
  13. Unreal Engine UE4虚幻引擎,创建Sky天空球,球天材质,自制天空球(HDR高动态范围贴图)
  14. 梦成真——一个普通学校计算机系学生的出国梦
  15. canvas绘制网易云logo
  16. Go语言 —— 前景
  17. 一图看清滴滴出行组织架构迭代
  18. Selenium元素定位神器工具谷歌浏览器插件-SelectorsHub介绍、安装和使用
  19. 这款耳机亲测,性价比堪比 AirPods
  20. Springboot就业推荐系统qwy6c计算机毕业设计-课程设计-期末作业-毕设程序代做

热门文章

  1. String.hashCode 哈希值出现重复?
  2. 通风与防排烟工程电子书_菠菜关于防排烟系统使用软接头工程量计算注意及定额选用建议...
  3. 仅需6步,教你轻易撕掉app开发框架的神秘面纱(4):网络模块的封装
  4. CentOS 安装Apache
  5. AngulerJS学习(五)按需动态载入文件
  6. PowerShell 导入 SQL Server 的 PS 模块
  7. JS设计模式-观察者模式
  8. Protractor测试环境搭建
  9. 微信公众平台对所有公众号开放自定义菜单
  10. org.apache.hadoop.fs-ChecksumException