在 PyCharm 下将 nbdime 用于 Jupyter 笔记本

sfj*_*jac 5 git pycharm jupyter dataspell

我用来nbdime区分和合并 Jupyter 笔记本,除了对于大型笔记本来说有点慢之外,我喜欢它。然而,当我尝试在 PyCharm 中进行版本控制时,我的 git 设置似乎被忽略,并且它对文件进行了文本差异.ipynb

我的.gitconfig有以下内容,我相信是在安装时设置的nbdime

[diff "jupyternotebook"]
        command = git-nbdiffdriver diff
[merge "jupyternotebook"]
        driver = git-nbmergedriver merge %O %A %B %L %P
        name = jupyter notebook merge driver
[difftool "nbdime"]
        cmd = git-nbdifftool diff \"$LOCAL\" \"$REMOTE\"
[difftool]
        prompt = false
[mergetool "nbdime"]
        cmd = git-nbmergetool merge \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"
[mergetool]
        prompt = false
Run Code Online (Sandbox Code Playgroud)

从命令行来看,这非常有效。(嗯,我从来没有必要进行合并,但是 diff 效果很好。)

另外,我发现您可以在 PyCharm 中指定外部差异工具,但这似乎是全局设置。

有人让它发挥作用吗?

deb*_*gme 8

更新于2021年11月29日

由于这非常依赖于设置,因此您可能必须调整以下内容。

我在用着:

  • macOS 12.01
  • miniconda 作为我的基本用户 python (3.9.7)
  • 每个项目我混合使用 virtualenv 和 conda

要使用 nbdime 来比较我的笔记本......

  1. 首先找出 nbdime 为您安装的位置。在 Mac/Linux 上: which nbdiff-web
  2. 在 PyCharm 或 IDEA 中,导航到首选项 -> 工具 -> 差异和合并 -> 外部差异工具
  3. 确保选中“使用外部差异工具:”
  4. 可执行文件的路径:步骤 1 中的完全限定路径
    • 我的是/Users/dork/miniconda/bin/nbdiff-web
  5. 参数:--ignore-details --ignore-metadata --ignore-outputs %1 %2
    • 这些标志假设您不想比较执行计数、元数据和输出
  6. 单击“应用”

使用方法:

  1. 打开笔记本的差异
  2. 单击顶部倒数第二个按钮(在 之前?)。看起来像锤子和扳手。它可能被扩展器隐藏。