Python 与 Jupyter 工具库 Calysto 如何使用

一直想找个 Jupyter 上的海龟绘图工具,最近发现了 Calysto,好像没什么人知道,分享一下……
https://www.jianshu.com/p/7bd071c87a32
Python 与 Jupyter 工具库 Calysto 如何使用

1 回复

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 和其他语言的桥梁,但现在有更专更好的方案,除非你有特定需求,否则可能不需要用它。

回到顶部