[英]How to merge changes in Jupyter notebooks
与Jupyter笔记本上的同事的合作使我发疯。 我们正在开发同一笔记本的不同版本(我会说“分支”,但这对于我们正在做的事情来说太花哨了)。 我尝试将他引入的(部分)更改合并到我的版本中。 由于差异JSON文件是一场噩梦,因此我将两个笔记本转换为.py
文件(从笔记本的“ 文件”菜单下载as \\ Python(.py文件) ),然后在PyCharm中比较.py
文件。 这很好用,也因为导出到.py
时所有输出都被删除了。
现在的问题是将更改后的.py
文件导入Jupyter。 这可能吗? 让我希望得到肯定答案的一件事是,在导出的.py
文件中有一些#In # In[4]:
注释,也许Jupyter接口可以使用它来理解如何将代码分成单元。 还是不可能回去? 如果是这样,您还有其他建议来合并Jupyter笔记本的两个不同版本之间的某些更改吗?
当我们有这样的问题,用JQ在描述这个帖子效果不错。 (部分从“ Enter jq”开始。)
要使用此功能,除了开发笔记本( 未添加到git之外),还有笔记本的第二个“剥离”版本,这是您添加到git的笔记本版本,否则将与的开发笔记本合并冲突您的队友)。
您总是需要额外的步骤,
nbstrip_jq mynotebook.ipynb > mynotebook_stripped.ipynb
在执行git add mynotebook_stripped.ipynb
之前,先git add mynotebook_stripped.ipynb
, git commit
等。但是,如果团队中的每个人都这样做,则使用git add mynotebook_stripped.ipynb
很好地管理更改。 对于较大的项目,您可以尝试自动化,如同一篇文章中下文所述。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.