如何在GitHub上保存代码文件并在Jupyter Notebook上运行?

3

通过GitHub,我们可以将代码存储在线上;通过Jupyter Notebook,我们可以仅执行Python代码的一部分。我想将它们结合起来使用。我可以在Jupyter Notebook中编辑存储在我的电脑上的代码。但是,我无法找到一种方法来运行存储在GitHub上的代码。所以,你知道如何做吗?

以下是一些示例: https://github.com/biolab/ipynb/blob/master/2015-bi/lcs.ipynb https://github.com/julienr/ipynb_playground/blob/master/misc_ml/curse_dimensionality.ipynb https://github.com/rvuduc/cse6040-ipynbs/blob/master/01--intro-py.ipynb

2个回答

6

1. 如果你只是想运行存储在Github或Gist上的Python代码:

IPython Magic命令%load,如这里的技巧#8所述,将使用外部脚本替换Jupyter笔记本单元格的内容。

源可以是计算机上的文件或URL。
Github或Gist托管脚本的技巧是将其指向原始代码的URL。 您可以通过在GitHub上浏览脚本并按下工具栏上方的Raw来获取原始代码的URL。 将地址栏中提取的内容放在%load 后面,以获得类似以下内容的内容:

%load https://raw.githubusercontent.com/dib-lab/khmer/master/scripts/fastq-to-fasta.py

当你在Jupyter笔记本单元格中执行它时,它将在笔记本的命名空间中引入代码。
更多关于如何通过GitHub或Gists使用原始代码的信息,请参见此处此处。有关其他魔术命令的更多信息,请单击此处
同样地,如果你想把脚本作为文件带入到笔记本中并使用%run调用(或相应的命令行),请在笔记本单元格中使用curl,脚本将被添加到当前目录中。
!curl -O https://raw.githubusercontent.com/dib-lab/khmer/master/scripts/fastq-to-fasta.py

然后在Jupyter笔记本中的一个单元格中运行以下内容的脚本:

%run fastq-to-fasta.py

提供脚本名后可能需要任何必要的参数。通常可以运行%run <script_name> --help来获取有关脚本期望的参数的信息。在笔记本中使用%run提供了更全面的Jupyter体验;在Jupyter笔记本中使用%run运行脚本类似于在命令行上运行脚本的传统方式。

2. 如果你想运行一个放在GitHub上的notebook:

或者如果你希望其他人能够轻松地运行那个notebook。
请查看MyBinder.org,在这篇Nature文章有介绍。有关该服务的更多信息可以在这里这里这里找到。

在MyBinder.org页面上,您可以将服务指向任何Github存储库。但是,除非它是相当基本的python笔记本,否则您将遇到依赖性问题。您可以按照这里这里的指导设置它来解决这个问题。
为了生成这个可启动的repo,我对一个最初未设置使用Binder系统的存储库进行了分叉。另一个例子,基于在Twitter交流中分享的gist的此R代码可以在这里看到。

使用它,您可以获得一个Launch Binder徽章,您可以将其添加到您的存储库并随时启动它。可以看到可以启动的示例here


我应该补充一下,如果在使用%load命令时引用Github上的特定提交,你和其他人就可以使你们的努力更加稳定/可重现。你可以浏览提交历史记录,然后输入特定的提交并通过GitHub Web界面中的“浏览文件”获取到特定提交的原始链接。以上面的示例为基础,你需要使用%load https://raw.githubusercontent.com/dib-lab/khmer/2c87d813c2e39550ece844db10a9d55b4dadc209/scripts/fastq-to-fasta.py来指定于2017年9月14日提交的脚本版本。 - Wayne

0

Github是一个版本和源代码控制工具,您需要将代码复制到本地环境。

这里有一个初学者教程在这里

一旦您设置了Github账户并定义了本地和远程存储库,您就可以使用git checkout检索代码。更多解释请参考教程。


感谢您的回答。 - user6867490
但是,在上面的例子中,似乎人们将代码存储在GitHub上并在Jupyter笔记本上运行。只需查看:https://github.com/rvuduc - user6867490
你需要完成教程,定义本地仓库并检出你感兴趣的分支来运行。 - Carlos Monroy Nieblas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接