Jupyter Notebook with go kernel 后续
本文记录了作者从gophernotes切换到GoNB作为Jupyter Notebook的Go内核的经验,详细比较了两种实现方案的优缺点。文章首先探讨了在Windows系统下使用gophernotes遇到的问题,以及尝试通过Docker解决的过程;然后介绍了GoNB的安装和使用方法,并通过实际示例展示了GoNB优秀的代码执行、可视化和交互能力。对于希望在Jupyter环境中使用Go语言的开发者,本文提供了实用的工具选择和配置指南。
前面提到过,我使用了 gophernotes 作为 Jupyter notebook 的 go kernel 实现本地自己的 “go playground”, 但是这个对于在 Windows 上使用并不是足够完善。我在使用时确实碰到一些问题,看了一下官方社区,他们推荐在 Windows 上使用 Docker 部署。于是我又在本地试了一下。
首先发现我的 Windows 上没了 Docker,不知道什么时候删除了 😦 那么就先安装吧。这个很简单:
1 | choco install docker -y |
不对,是要桌面版:
1 | choco install docker-desktop -y |
安装完毕!
gophernotes
安装
1 | docker run -it -p 8888:8888 gopherdata/gophernotes |
加了 latest-ds 后里面安装了 go 数据科学包,如 gonum, gota, golearn, etc
1 | docker run -it -p 8888:8888 -v /path/to/local/notebooks:/path/to/notebooks/in/docker gopherdata/gophernotes:latest-ds |
但是这里我还发现一点不方便,使用这个镜像安装有一个缺点,就是在运行 notebooks 时有些包导入失败,因为下载的 Docker 镜像中没有安装相应的包。试了下进入 Docker 镜像内部,想着手动安装吧,结果里面连包管理命令都缺失。所以就放弃,折腾下去的话不知道还会有什么问题。所以呢,还是回到本地安装的环境中来。用了 Docker 结果还是心塞,当初选 gophernotes 是有点随便了。所以呢,我想换 Go kernel 了。
再次认真看了下这个列表: 
发现除了 gophernotes, gonb 这两个,基本上其它的都不行。所以现在只能试下 gonb 了。
GoNB
这次不想整环境问题了,直接上 Docker 容器:
安装
1 | docker pull janpfeifer/gonb_jupyterlab:latest |
使用
先照着 tutirial 文档把所有的例子都运行一遍,发现这个 go kernel 真 NB。
下面是总结的一些我觉得有用的使用方法:不过也可以直接看原文档:tutorial。但是呢原文档是 .ipynb 格式的,而且比较长,我只摘取部分内容作为说明,并且是在 notebook 中演示:
这个渲染效果来自:nbviewer
结论就是:gonb 是比 gophernotes 更好的用于 Jupyter notebook 的 go kernel。
