Python 与 Jupyter 工具库 Calysto 如何使用
一直想找个 Jupyter 上的海龟绘图工具,最近发现了 Calysto,好像没什么人知道,分享一下……
https://www.jianshu.com/p/7bd071c87a32
Python 与 Jupyter 工具库 Calysto 如何使用
Calysto 是一个让 Jupyter 能在非 Python 内核(比如 Bash、R、Ruby)里跑起来的工具包。它的核心是 metakernel,给这些内核套了个 Jupyter 能认的壳。不过说实话,这项目现在不怎么活跃了,很多主流内核(如 IRkernel 用于 R)都有官方或更成熟的 Jupyter 集成方案。但如果你就是想用 Calysto 来玩点别的,比如在 Jupyter 里写 Bash,可以按下面这个流程来。
首先,用 pip 把它装上。它自带几个内核,比如 calysto_bash。
pip install calysto_bash
装完后,需要把新内核注册到 Jupyter 里。
python -m calysto_bash install
现在启动 Jupyter Notebook 或 Jupyter Lab,新建笔记本时就能在 kernel 列表里看到 “Bash” 选项了。在单元格里就能直接写 Bash 命令。
# 在标记为 Bash 的单元格中执行
echo "Hello from Bash"
pwd
ls -la
如果你想自己写个 Calysto 内核(比如给某个小众语言),得继承 metakernel.MetaKernel 并实现几个关键方法,主要是 do_execute_direct。这里有个极简架子:
from metakernel import MetaKernel
class MyLanguageKernel(MetaKernel):
implementation = 'MyLanguage'
implementation_version = '1.0'
language = 'mylang'
language_version = '0.1'
banner = "MyLanguage Kernel"
def do_execute_direct(self, code):
# 这里是执行代码的核心逻辑
# 例如,调用外部解释器或库
result = self.run_my_language(code)
return result
def get_completions(self, info):
# 可选:实现代码补全
return []
if __name__ == '__main__':
MyLanguageKernel.run_as_main()
写完内核后,同样用 python -m your_kernel_module install 来注册。
总结一下,Calysto 是个打通 Jupyter 和其他语言的桥梁,但现在有更专更好的方案,除非你有特定需求,否则可能不需要用它。

