如何在Jupyter Notebook中获取活动内核名称

7
我想制作一个笔记本,可以打印当前活动的内核名称。我使用以下命令将多个虚拟环境注册为内核:
python -m ipykernel install --user --name <kernel_name>

在笔记本中,我想打印有关活动内核的一些元数据。
如何获取活动内核的名称?
编辑:
这是我的堆栈中的特定版本。
ipykernel==4.5.2
ipython==5.3.0
jupyter==1.0.0

然而,这个问题应该总体上得到回答。


2
您可以从 sys.executable 获取该信息;这将为您提供解释器路径。 - eduffy
2个回答

7

有一种方法是在笔记本中使用JavaScript,并执行一些代码使字符串在Python中可用:

%%javascript
var kernel = Jupyter.notebook.kernel
kernel.execute('kernel_name = ' + '"' + kernel.name + '"')

接下来我们要介绍Python中的内核名称:

print(kernel_name)
# my-kernel

作为额外的奖励,你可以使用jupyter_client模块来查找有关内核名称的更多信息。
from jupyter_client import kernelspec
spec = kernelspec.get_kernel_spec(kernel_name)
print(spec.resource_dir)
# /path/to/my/kernel

8
在使用JupyterLab时,我遇到了“Javascript Error: Jupyter is not defined”的错误。 - pentavalentcarbon
1
JupyterLab和Jupyter Notebook具有完全不同的前端JavaScript环境。 - jakevdp

1
在JupyterLab中,{{link1:eduffy的评论}}有效。
import sys
import os
kernel_name = os.path.basename(sys.executable.replace("/bin/python",""))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接