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

How to place custom Jupyter kernels inside virtual environment?

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

我知道 运行 这通常会成功 我会输入:

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

我想我需要做的是将上面的东西放在 venv 中的某个等效位置,但我不知道它们应该放在哪里。有谁知道他们会去哪里?还是这只是 IPython/Jupiter 不能t/won 做的事情?

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

您可以将内核规范放在 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

内核规范被视为 data files,并且可以在 data: 下列出的任何目录中的 kernels 子目录中找到,例如/usr/local/share/jupyter/kernels.