我在Rapberry Pi操作系统(Raspbian bullseye(11(,5.15.56(上通过pip安装了Jupyter Notebook(6.4.12(。我可以双击.ipynb
文件,它们会按预期启动一个新的Notebook实例。
在安装Notebook并重新启动之后,我通过pip安装了nbopen(0.6(包,并运行了python3 -m nbopen.install_xdg
,希望双击一个文件现在可以在现有的Notebook实例中打开它。
然而,旧的行为仍在继续。没有产生错误消息,并且在~/.local/share/applications/
处更改nbopen.desktop
以使用nbopen %f
或python3 -m nbopen %f
没有任何改变。
在终端中使用nbopen <file>
正如我所期望的那样工作
为什么这不起作用,我该怎么做才能将其修复为预期的行为?
问题源于Jupyter Notebook的jupyter-notebook.desktop
将Notebook注册为打开.ipynb
文件的主要方式。如果重新启动,即使从.desktop
文件中删除了相应的行,它也将保持缓存为主方式。
由于两者都自称";Jupyter笔记本;当打开文件时,nbopen
实际上无法达到Notebook的默认行为,可能最清楚的是删除Jupyter作为打开.ipynb
文件的一种方式:
在~/.local/share/applications/jupyter-notebook.desktop
中,删除行MimeType=application/x-ipynb+json;
或用#
注释掉它。
在~/.local/share/applications/mimeinfo.cache
中,将行application/x-ipynb+json=jupyter-notebook.desktop;nbopen.desktop;
更改为application/x-ipynb+json=nbopen.desktop;
如果您不希望删除Jupyter Notebook作为打开.ipynb
文件的一种方式,您可以跳过删除jupyter-notebook.desktop
中的行,而是重新排序mimeinfo.cache
中的两个整数。