我有一个自定义Jupyter内核,它使用自定义IPython配置文件运行IPython,该配置文件使用matplotlib样式表。
我知道要成功地运行这个我会把:
〜/ .config / matplotlib / stylelib /
〜/ .ipython /
〜/ .jupyter / kernels / my_kernel /
但是我这样做是为了在virtualenv中运行的大型程序的一部分,如果我把上面的东西放在那里,那么在计算机上运行的任何笔记本服务器都能够看到自定义内核,即使它在外面运行venv。我不知道这是什么,因为我不希望我的程序干扰计算机上的其他笔记本。
我认为我需要做的是把东西放在venv内的某个地方,但我无法弄清楚应该去哪里。有谁知道他们会去哪里?或者这只是IPython / Jupiter无法做到的事情吗?
可能值得一提的是,例如在样式表的情况下,我不想把它放在我的程序的工作目录中(这是matplotlib提供的一个选项)。
答案 0 :(得分:4)
您可以将kernelspecs放在VIRTUAL_ENV/share/jupyter/kernels/
中,如果笔记本服务器在该环境中运行,它们将可用。通常,<sys.prefix>/share/jupyter/kernels
包含在查找kernelspecs的路径中。
你可以看到Jupyter看的各个位置,你可以看到jupyter --paths
的输出:
$ jupyter --paths
config:
/Users/you/.jupyter
/Users/you/env/etc/jupyter
/usr/local/etc/jupyter
/etc/jupyter
data:
/Users/you/Library/Jupyter
/Users/you/env/share/jupyter
/usr/local/share/jupyter
/usr/share/jupyter
runtime:
/Users/you/Library/Jupyter/runtime
Kernelspecs被视为data files,可以在data:
子目录下的kernels
子目录中列出的任何目录中找到,例如/usr/local/share/jupyter/kernels
。