如何在Jupyter笔记本中合并更改

6
与同事在Jupyter笔记本上合作让我感到很烦恼。我们正在处理同一笔记本的不同版本(我会说“分支”,但这可能太花哨了)。我尝试将他所做的更改合并到我的版本中。由于对比JSON文件是一场噩梦,我将两个笔记本转换为.py文件(从笔记本的文件菜单中选择下载为\Python(.py文件)),然后在PyCharm中比较.py文件。这很好用,还因为导出到.py时删除了所有输出。
现在的问题是如何将更改后的.py文件导入到Jupyter中。这可行吗?唯一让我有肯定答案的希望是,导出的.py文件中有一些# In[4]:注释,也许Jupyter界面可以使用它们来理解代码如何分成单元格。还是说根本不可能回去了?如果是这样,你有没有其他建议来合并两个不同版本的Jupyter笔记本中的一些更改?
1个回答

3
为了回答第二个问题:(并且这个问题看起来与此相关)
当我们遇到那个问题时,像这篇文章中描述的那样使用 jq 是可以的。(从“输入jq”开始的部分。)
要使用它,您需要有一个第二个“剥离版”的笔记本电脑,您将其添加到 git 中,除了您的开发笔记本电脑(不要将其添加到 git 中,否则您将在团队成员的开发笔记本电脑中得到合并冲突)。
在执行git add mynotebook_stripped.ipynbgit commit等操作之前,您总是需要一个额外的步骤, nbstrip_jq mynotebook.ipynb > mynotebook_stripped.ipynb 但如果您的团队中的每个人都这样做,那么更多或更少的更改就可以很好地通过 git 进行管理。对于更大的项目,您可以尝试按照同一篇文章中进一步描述的方式进行自动化。

备忘录:有时间试试nbdime,它似乎有git集成。 - dasWesen

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