如何在虚拟环境中放置自定义Jupyter内核?

C. *_*dBD 5 python matplotlib ipython jupyter-notebook

我有一个自定义的Jupyter内核,该内核使用使用matplotlib样式表的自定义IPython配置文件运行IPython。

我知道通常可以成功运行此命令:

  • 〜/ .config / matplotlib / stylelib /中的matplotlib样式表

  • 〜/ .ipython /中的IPython配置文件

  • 〜/ .jupyter / kernels / my_kernel /中的内核json

但是我是作为在virtualenv中运行的较大程序的一部分来执行此操作的,如果将上面的内容放在上面,则计算机上运行的任何笔记本服务器都将能够看到自定义内核,即使它在venv之外运行也是如此。我不是这个意思,因为我不希望我的程序干扰计算机上的其他笔记本。

我认为我需要做的是将这些东西放在venv中等效的某个位置上,但是我不知道它们应该去哪里。有人知道他们会去哪里吗?还是这仅仅是IPython / Jupiter无法/不会做的事情?

可能值得一提的是,例如在样式表的情况下,我不想仅将其放在程序的工作目录中(这是matplotlib提供的一个选项)。

min*_*nrk 5

您可以放入kernelspecs,VIRTUAL_ENV/share/jupyter/kernels/如果笔记本服务器在该环境中运行,它们将变为可用。通常,<sys.prefix>/share/jupyter/kernels它包含在查找内核规格的路径中。

您可以看到Jupyter将看到的各个位置,可以看到输出jupyter --paths

$ jupyter-路径

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
Run Code Online (Sandbox Code Playgroud)

Kernelspecs被认为是数据文件,可以data:kernels子目录(例如)下列出的任何目录中找到/usr/local/share/jupyter/kernels