【问题标题】:How to setup a Jupyter-notebook with calysto-processing to run in Binder?如何设置带有 calysto-processing 的 Jupyter-notebook 以在 Binder 中运行?
【发布时间】:2019-11-23 01:35:36
【问题描述】:

我有 在我自己的 Mac 上运行,并插入了 caylsto-processing 库,因此我可以在浏览器选项卡的笔记本中运行处理脚本。但我试图能够在活页夹中运行这一切,这样我就可以在课堂上与学生分享我的处理脚本。我创建了一个 Github 存储库并将其链接到活页夹,活页夹构建并启动,但唯一可用的内核是 python 3。

我读到我可以包含一堆 configuration files,但我对这些很陌生,我没有看到任何引入 calysto 处理内核的示例,所以我不确定如何继续.

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

任何帮助将不胜感激。

【问题讨论】:

  • 不清楚您执行了哪些步骤。例如,可以发布您的 docker 扩展,以便其他人可以检查正在发生的事情。
  • @CelineLatulipe 我想我找到了解决方法:查看下面的更新答案

标签: jupyter-notebook python jupyter-notebook processing android-binder


【解决方案1】:

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

我刚刚安装了calysto_processing,发现需要做三件事:

  1. 通过pip安装calysto_processing包,
  2. calysto_processing 包上运行安装。
  3. 安装处理。

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

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

第 3 步感觉最棘手。

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

假设一个 Dockerfile 将包含手动下载/安装处理的所有步骤(顺便说一句,我对 Docker 的经验并不丰富),它将需要执行,这将需要一个窗口系统来呈现处理窗户。 我不知道它与 Docker 的配合如何,听起来它正在进入虚拟机领域。

话虽如此,看source code right here

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

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

我的务实(如果你愿意的话,甚至是 hacky)建议是:

  1. fork 项目并删除 processing-java 依赖项(这意味着可能会丢失错误检查)
  2. 通过 pip/requirements.txt 安装克隆/调整版本(pip 可以从 github repo 安装包)

更新上面我已经试过了:你可以运行test kernel here

源是here,模块是从this fork安装的,这只是comments outprocessing-java部分。

mybinder 配置而言,它归结为:

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

注意事项

  • 有了这个解决方法,java 错误检查就消失了
  • 虽然使用了处理语法,但它作为 javascript 执行并使用 ProcessingJS<canvas/> 中呈现:这意味着没有处理 Java 库、没有线程或其他 Java 特定功能(有缺陷或没有 3D)等。只是基本的处理绘图草图
  • 是否值得考虑用p5.js 替换ProcessingJS 并查看其他JS 笔记本? (例如ObservableIJavascript

【讨论】:

  • 这非常有用!!!!谢谢你,乔治!当我周末有时间的时候,我会试着用我自己的活页夹来做这件事。我要教一门使用处理的课程,所以 p5 等对我没有用处。
  • 很高兴听到这个消息!我对这门课很好奇,如果你能分享你用 Jupyter Notebooks 教授处理的经验,那就太好了! (正如我提到的,这仅限于 2D 初学者级别的图形/输入(鼠标、键盘),尚未尝试加载图像))。如果以上回答了您的问题,请随时勾选/标记它;)
  • 今年秋天我将在曼尼托巴大学教授一门新课程(对我来说是新课程)。我以前经常使用Processing,但我从来没有教过它。我只是认为我可以将学生指向 Binder 上的 Jupyter/Calysto 处理笔记本,他们可以在课堂上进行活动,这样我就不必担心帮助他们在自己的笔记本电脑或平板电脑上安装任何东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-14
  • 2022-06-16
相关资源
最近更新 更多