【问题标题】:Jupyterlab: How to remove/hide default "Python 3" Kernel?Jupyterlab:如何删除/隐藏默认的“Python 3”内核?
【发布时间】:2021-01-29 11:58:53
【问题描述】:

我正在为我们公司运行自定义配置的 Jupyterlab 安装。它连接到 Livy 和 Spark 以提供 PySpark 和 Spark 内核,运行良好。

但是,我仍然要删除默认的Python 3 内核:

当将控制台放到 pod 中并执行 jupyter kernelspec list 时,我得到了预期:

Available kernels:
  pysparkkernel    /usr/local/share/jupyter/kernels/pysparkkernel
  python3          /usr/local/share/jupyter/kernels/python3
  sparkkernel      /usr/local/share/jupyter/kernels/sparkkernel

当我jupyter kernelspec remove python3 并重新加载 Jupyterlab 时,Python 3 内核仍然存在,它重新出现在列表中:

Available kernels:
  python3          /usr/local/lib/python3.8/dist-packages/ipykernel/resources
  pysparkkernel    /usr/local/share/jupyter/kernels/pysparkkernel
  sparkkernel      /usr/local/share/jupyter/kernels/sparkkernel

即使我删除了这个/usr/local/lib/python3.8/dist-packages/ipykernel/resources 目录,内核也不会消失。

甚至可以禁用这个默认内核还是我必须忍受它?

解决方法

通过将 pysparkkernel 中的所有内容复制到 python3 目录并删除 pysparkkernel,我得到了我想要的,有效地让 Jupyterlab 认为 PySpark 内核是默认内核。

虽然这可行,但如果这是唯一的方法,我仍然很感兴趣。

【问题讨论】:

    标签: jupyter-notebook jupyter-lab


    【解决方案1】:

    除了删除内核规范之外,您还需要关闭 ensure_native_kernel 选项,以确保始终包含默认内核,方法是添加:

    c.KernelSpecManager.ensure_native_kernel = False
    

    到您的配置文件。您也可以通过命令行进行设置:

    jupyter lab --KernelSpecManager.ensure_native_kernel=False
    

    https://github.com/jupyter/notebook/issues/3674中所述

    注意:如果您使用带有 jupyter_server 的 JupyterLab 3.x,则配置现在存储在 jupyter_server_config.py 中,而不是 jupyter_notebook_config.py 中,如 migration guide 中所述。

    【讨论】:

    • 我在第一次启动 Jupyterlab 时即时生成配置,以便能够使用放入 Kubernetes 部署文件的环境变量进行配置。我会试试这个选项。
    • 不幸的是,它不起作用。我将该行添加到我的配置中,但在删除默认内核后它仍然存在。不过,我正在将 Jupyterlab 与 Jupyterhub 一起使用。
    • 您确定您正在编辑正确的配置文件吗? JupyterHub 还没有切换到 jupyter_server(尽管它可能会随着 JupyterLab 3.0.6 改变)
    猜你喜欢
    • 1970-01-01
    • 2021-08-07
    • 2019-07-24
    • 1970-01-01
    • 1970-01-01
    • 2015-05-06
    • 1970-01-01
    • 2018-10-12
    • 1970-01-01
    相关资源
    最近更新 更多