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

时间:2016-02-09 01:20:19

标签: python matplotlib ipython jupyter-notebook

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

我知道要成功地运行这个我会把:

  • 〜/ .config / matplotlib / stylelib /

  • 中的matplotlib样式表
  • 〜/ .ipython /

  • 中的IPython配置文件
  • 〜/ .jupyter / kernels / my_kernel /

  • 中的内核json

但是我这样做是为了在virtualenv中运行的大型程序的一部分,如果我把上面的东西放在那里,那么在计算机上运行的任何笔记本服务器都能够看到自定义内核,即使它在外面运行venv。我不知道这是什么,因为我不希望我的程序干扰计算机上的其他笔记本。

我认为我需要做的是把东西放在venv内的某个地方,但我无法弄清楚应该去哪里。有谁知道他们会去哪里?或者这只是IPython / Jupiter无法做到的事情吗?

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

1 个答案:

答案 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