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

Del*_*aIV 6 python merge jupyter-notebook

与同事在 Jupyter 笔记本上进行协作让我抓狂。我们正在开发同一笔记本的不同版本(我会说“分支”,但这对于我们正在做的事情来说可能太花哨了)。我尝试将他引入的(一些)更改合并到我的版本中。由于比较 JSON 文件是一场噩梦,因此我将两个笔记本转换为.py文件(从笔记本的文件菜单下载为\Python(.py 文件)),然后在 PyCharm 中比较文件。这很好用,还因为导出到..py.py

现在的问题是将更改后的.py文件导入到 Jupyter 中。这可能吗?让我希望得到肯定答案的一件事是,导出的.py文件中有一些# In[4]:注释,Jupyter 界面可能会使用这些注释来理解代码如何划分为单元格。还是根本不可能回去?如果是这样,您还有其他建议来合并 Jupyter 笔记本的两个不同版本之间的一些更改吗?

das*_*sen 3

回答第二个问题:(这个问题看起来与之相关)

当我们遇到这个问题时,使用本文中描述的 jq效果很好。(从“输入jq”开始的部分。)

要使用它,除了您的开发笔记本(未添加到 git 中,否则您会与开发笔记本发生合并冲突)之外,您还需要第二个“剥离”版本的笔记本,这是您添加到 git 的笔记本。你的队友)。

你总是需要一个额外的步骤,

nbstrip_jq mynotebook.ipynb > mynotebook_stripped.ipynb

但如果团队中的每个人都这样做git add mynotebook_stripped.ipynbgit commit那么这些更改或多或少可以通过 git 很好地管理。对于更大的项目,您可以尝试将其自动化,如下面同一篇文章中进一步描述的那样。