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

时间:2019-07-13 17:11:16

标签: python jupyter-notebook processing android-binder

我有在自己的Mac上运行,并且插入了caylsto处理库,因此我可以在浏览器选项卡的笔记本中运行处理脚本。但是我试图能够在活页夹中全部运行,以便我可以在上课时与学生共享我的处理脚本。我创建了一个Github存储库,并将其链接到活页夹,该活页夹可以构建并启动,但是唯一可用的内核是python3。

我已经读到我可以加入一堆configuration files,但是我是新手,我看不到任何引入calysto处理内核的示例,因此我不确定如何继续。

我的活页夹和带有处理脚本的jupyter-notebook的屏幕截图-但是,当您单击内核时,它显示的唯一内核是python: Screenshot of my binder with the jupyter-notebook with a processing script - but when you click on kernels, the only kernel it shows is python

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

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

我刚刚安装了calysto_processing,并注意到需要做三件事:

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

使用requirements.txt可以使第一点变得容易。

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

第3步感觉最棘手。

apt-get目前不支持安装Processing,因此Dockerfile可能是前进的方向(甚至通过mybinder建议也只能这样做)。

让我们假设Dockerfile将包含手动下载/安装处理的所有步骤(而且我暂时还没有对Docker的超级经验),因此需要执行该操作,这将需要一个窗口系统来呈现处理窗口。 我不知道它在Docker中的表现如何,听起来好像它正在进入虚拟机领域。

话虽如此,看着source code right here

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

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

我的务实建议(即使您愿意,也很hacky)是:

  1. 分叉项目并删除processing-java依赖性(这意味着可能会丢失错误检查)
  2. 通过pip / requirements.txt安装克隆/调整后的版本(pip可以从github存储库安装软件包)

更新我已经尝试了上述方法:您可以运行test kernel here

ProcessingJS in mybinder online shared Jupyter Notebook

源是here,模块是从this fork processing-java部分comments out安装的。

根据mybinder配置,它可以归结为:

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

注释

  • 有了这种解决方法,java错误检查就消失了
  • 尽管使用了Processing语法,但它是作为JavaScript执行的,并使用ProcessingJS<canvas/>中呈现:这意味着没有处理Java库,没有线程或其他特定于Java的功能(无缓冲或无3D)等等只是基本的处理工程图草图
  • 也许值得一看的是用p5.js替换ProcessingJS并查看其他JS笔记本吗? (例如ObservableIJavascript