Github绑定要求

2024-04-29 18:44:05 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

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

有没有一种方法可以做到这一点,而不必为每个新笔记本创建新的存储库?或者这仅仅因为活页夹的工作原理而不可能


Tags: 文件githubtxt文件夹配置文件笔记本jupyterbinder
1条回答
网友
1楼 · 发布于 2024-04-29 18:44:05

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

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

(全面披露一对一回购环境问题:
如果您转到here并查找以“我想不出为什么您不能存储requirements.txt…”开头的部分,您将看到关于允许与基于环境的当前repo相对应的其他解决方案的讨论。)

相关问题 更多 >