如何在 Binder 中设置带有 calysto 处理的 Jupyter 笔记本到 运行?

How to setup a Jupyter-notebook with calysto-processing to run in Binder?

我自己 运行ning Mac 插入了 caylsto-processing 库,这样我就可以 运行 在浏览器中的笔记本中处理脚本标签。但我正在尝试能够 运行 这一切都在活页夹中,这样我就可以在 class 期间与学生分享我的处理脚本。我创建了一个 Github 存储库并将其链接到活页夹,然后活页夹构建并启动,但唯一可用的内核是 python 3.

我读到我可以包含一堆 configuration files,但我是新手,我没有看到任何引入 calysto 处理内核的示例,所以我不确定关于如何进行。

带有处理脚本的 jupyter-notebook 活页夹的屏幕截图 - 但是当您单击内核时,它显示的唯一内核是 python:

如有任何帮助,我们将不胜感激。

很好的问题。艾曼的建议很好。

我刚刚安装了 calysto_processing 并注意到 3 件事是必要的:

  1. 正在通过 pip 安装 calysto_processing 包,
  2. 运行正在安装 calysto_processing 软件包。
  3. 正在安装处理。

第一点 requirements.txt 应该很容易。

我不确定第二步的最佳选择是什么(也许是自定义 setup.py?)。

第 3 步感觉最棘手。

apt-get 目前不支持安装 Processing,因此 Dockerfile 可能是前进的方向(即使 mybinder 建议仅作为最后的手段)。

让我们假设一个 Docker 文件将包含手动 download/install 处理的所有步骤(顺便说一句,我目前对 Docker 不是很有经验),它将需要要执行,这将需要一个 windowing 系统来呈现处理 window。 我不知道它在 Docker 上的表现如何,听起来它正在进入虚拟机领域。

话虽这么说,看看 source code right here:

  1. 处理仅用于验证草图,并提取语法错误以显示它们。
  2. ProcessingJS 用于在 Jupyter Notebook<canvas/> 元素中实际呈现处理代码

我不确定 运行 mybinder 中当前 calysto_processing 的最简单方法是什么。

我的实用主义(如果你愿意的话,甚至是老套的)建议是:

  1. 分叉项目并删除 processing-java 依赖项(这意味着可能会丢失错误检查)
  2. 通过 pip/requirements.txt 安装 cloned/tweaked 版本(pip 可以从 github 仓库安装包)

更新 以上方法我都试过了:可以 运行 test kernel here

来源是 here and the module is installed from this fork which simply comments outprocessing-java 部分。

mybinder 配置而言,归结为:

  • 在包含笔记本的存储库中创建一个 binder 文件夹
  • 添加 requirements.txt 指向 calysto_processing 的调整版本,剥离了 processing-java 依赖项:git+https://github.com/orgicus/calysto_processing.git@hotfix/PJS-only-test
  • 添加 postBuild 文件,运行s 安装在 calysto_processing 模块上:python -m calysto_processing install --user

注释

  • 有了这个解决方法 java 错误检查就消失了
  • 虽然使用了处理语法,但它作为 java 脚本执行并使用 ProcessingJS<canvas/> 中呈现:这意味着没有 processing-java 库,没有线程或其他 java 具体功能,(错误或无 3D)等。只是基本的处理绘图草图
  • 可能值得考虑用 p5.js and checking out other JS notebooks ? (e.g. Observable or IJavascript)
  • 替换 ProcessingJS