【Python相关】jupyter平台最强插件没有之一
1 简介
jupyter lab
是我最喜欢的编辑器,在过往的文章中也给大家介绍过很多相关资源和实用插件,但本文要给大家介绍的jupyter lab
插件elyra
,绝对是我使用过的最强大的jupyter lab
插件没有之一,因为它的核心功能就是帮助我们解决数据分析工作中非常重要的问题——「搭建工作流」。
图1
2 利用elyra搭建工作流
在安装elyra
插件集之前,请确保你的jupyter lab
版本在2.0
及以上,并且已经安装好了nodejs
也就是所有jupyter lab
拓展插件都需要的依赖。
不像常规的jupyter lab
插件的安装方法,我们执行下列命令即可安装elyra
下集成的多个插件:
pip install --upgrade elyra && jupyter lab build
安装完之后,你的jupyter lab
操作界面外观会发生一些变化,我们先记住在安装elyra
之前我们的jupyter lab
界面长啥样(我使用的主题感兴趣的朋友可以通过jupyter labextension install jupyterlab-tailwind-theme
来安装):
图2
而在安装完成重启jupyter lab
之后,除了左上角的jupyter
logo变化了之外,还新增了图中我用红框框选出来的地方:
图3
接下来我们就来介绍如何利用elyra
交互式地「搭建工作流」。
elyra
赋予了我们通过交互的方式将若干个ipynb
文件组织成工作流的能力,为了方便演示,这里我们创建几个带有简单流程代码的ipynb
文件:
图4 step1.ipynb
图5 step2.ipynb
图6 step2-1.ipynb
图7 step2-2.ipynb
接着我们在「Launcher」页面点击Pipeline Editor
打开用来交互式编辑「notebook流水线」的界面:
图8
图9
直接将侧边栏中对应的step1.ipynb
文件拖拽进来:
图10
点击流水线界面中ipynb
文件对应节点右侧的三个圆点,可以打开更多功能选项:
图11
因为我们是本地环境,所以这里只需要在properties
下必填参数Runtime Image
中随便选一个就行:
图12
保存之后,就完成了本地环境下单个节点的必要参数设置,同样的将其他ipynb
文件拖拽进来,各自配置好必要参数再如图13所示将各节点联结起来:
图13
这样我们的流水线就搭建好了,是不是非常滴好玩~,接着点击左上角的运行按钮,输入流水线名称后即可开始运行我们的工作流:
图14
工作流执行成功之后也会有提示:
图15
如果工作流执行到某个节点发生程序错误,也会有非常人性化的提示:
图16
对应出错的ipynb
错误代码块上方,elyra
也会帮我们创建记录错误信息的markdown
单元格:
图17
最好用的是,配合魔术命令%store
,我们就可以跨notebook
传递全局变量,而不需要再往外写出先前节点的结果文件:
利用%store 变量名
将某个变量转化为跨kernel
的全局变量:
图18
利用%store -r 变量名
将跨kernel
全局变量中的指定变量加载到当前kernel
中:
图19
而除了「搭建工作流」这个核心功能外,elyra
还有很多其他的实用功能,感兴趣的朋友可以前往官方文档(https://elyra.readthedocs.io/en/latest/)自行阅读学习。
- python爬虫beautifulsoup4系列4-子节点
- 元胞自动机实现多数分类算法
- 51Nod 1289 大鱼吃小鱼(模拟,经典好题)
- 用Metaclass实现一个精简的ORM框架
- HDU 2504 又见GCD(最大公约数与最小公倍数变形题)
- Selenium2+python自动化63-二次封装(click/send_kesy)
- Selenium2+python自动化65-js定位几种方法总结
- HDU 2502 月之数(二进制,规律)
- Tensorflow实战系列:手把手教你使用CNN进行图像分类(附完整代码)
- HDU 2503 a/b + c/d(最大公约数与最小公倍数,板子题)
- python接口自动化6-重定向(Location)
- 2017广东工业大学程序设计竞赛初赛 题解&源码(A,水 B,数学 C,二分 D,枚举 E,dp F,思维题 G,字符串处理 H,枚举)
- python接口自动化7-参数关联
- 深度学习GPU环境Ubuntu16.04+GTX1080+CUDA9+cuDNN7+TensorFlow1.6环境配置
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法