繁体   English   中英

Github 活页夹要求.txt

[英]Github binder requirements.txt

比如说,我有一个名为notebooks_examples的 github 存储库。 在这个存储库中,我有几个文件夹,每个文件夹都包含一个不同的 jupyter notebook,我想通过 MyBinder 执行它们。 所有这些笔记本都是相互独立的,可能需要不同的包才能正常运行。 如何让每个笔记本都有不同的“requirements.txt”文件?

我知道我可以在存储库的根目录下只有一个,但这意味着它可以防止一个人使用同一包的不同版本; 这也意味着在运行给定的笔记本时,即使在这种情况下不需要任何软件包,也会安装所有软件包。

我还看到我可以将配置文件放在名为“binder”的文件夹中,但我没有这样做。 我尝试的结构如下。 我在notebooks_examples/notebook_1/README.md有一个自述文件,这里有 2 个文件: notebooks_examples/notebook_1/binder/{notebook_1.ipynb,requirements.txt} 但是,当我通过 Binder 启动笔记本时,我的导入都不起作用,就好像没有看到配置文件一样。

有没有办法在不为每个新笔记本创建新存储库的情况下做到这一点? 或者这根本不可能因为活页夹的工作原理?

目前,每个存储库(或 repo)对应一个将由repo2docker制作的环境,这是构建 Binderhub 环境部分的基础技术。 (MyBinder.org 是一个面向公众的公共 Binderhub 联盟。)
并且配置文件要么放置在根目录中,要么放置在binder/目录中,并且不能位于相对于存储库根目录的任何其他位置,请参见此处
因此,目前您无法摆脱为您需要的每个环境至少拥有一个存储库; 但是,除非您的所有笔记本完全需要不同的环境,否则您不需要为每个笔记本单独的存储库。

此外,您的笔记本可以保留在它们目前在 Github 中的位置,并且您可以放置launch binder链接,每个链接将启动与特定笔记本(或笔记本集合)和正确环境的会话。
此处概述一种方法。 但是,在您的情况下,nbgitpuller 会复制您当前拥有的所有笔记本,然后打开一个特定的笔记本。 如果您设置每个需要环境的存储库,然后创建您需要的 URL,这可能适用于您所描述的内容。 作为 nbgitpuller 的替代方案,您可以在您的“环境”存储库中具体指定要获取哪些笔记本以及使用start配置文件将它们放置在何处,您可以在其中使用curl从您的全包存储库中获取特定的笔记本。 使用与此类似的start示例是here 因此,对于您的特定情况,您可能想要确定可以将哪些笔记本块放在一起,并为每个环境创建一个存储库。 然后start文件将在会话启动时检索这些笔记本。 然后可以使用从此处配置的启动按钮 URL 来指定在会话启动时打开哪个特定笔记本。

(关于一对一环境问题的完整披露:
如果您转到此处并查找以“我想不出您无法存储 requirements.txt...当前存储库对应于基于环境的存储库。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM