如何将 conda 环境添加到 jupyter 实验室

Posted

技术标签:

【中文标题】如何将 conda 环境添加到 jupyter 实验室【英文标题】:How to add conda environment to jupyter lab 【发布时间】:2019-03-30 22:53:14 【问题描述】:

我正在使用 Jupyter Lab,但无法添加 conda 环境。这个想法是从我的基础环境启动 Jupyter Lab,然后能够选择我的其他 conda envs 作为内核。

我安装了包nb_conda_kernels,它应该可以做到这一点,但它没有按我的意愿工作。事实上,假设我创建了一个新的 Conda 环境,然后从基础启动 jupyter lab,我无法将新环境视为可用内核。

我找到了一个“修复”,它每次都有效,但一点也不方便。如果我在我的新环境中安装 Jupyter Notebook,然后从这个新环境启动一个 Jupyter Notebook,关闭它,回到基础环境,然后从基础环境启动 Jupyter Lab,我的新环境在 Jupyter Lab 中作为内核可用。

如果您知道如何在没有此“修复”的情况下使其工作,我将不胜感激。

【问题讨论】:

【参考方案1】:

假设你的 conda-env 被命名为cenv,它很简单:

$ conda activate cenv           # . ./cenv/bin/activate in case of virtualenv
(cenv)$ conda install ipykernel
(cenv)$ ipython kernel install --user --name=<any_name_for_kernel>
(cenv)$ conda deactivate

如果您重新启动 jupyter notebook/lab,您将能够看到可用的新内核。对于较新版本的 jupyter 内核将出现而无需重新启动实例。只需按 F5 刷新即可。

PS:如果您使用的是 virtualenv 等,上述步骤也适用。

【讨论】:

我将在 jupyter 实验室/笔记本中难以获得 tensorflow 环境的人们引导到这个答案。它对我有用。谢谢。 我只想补充一点,一旦你有了新的内核,进入你的 jupyter notebook,在“kernel”下,选择“change kernel”到你新创建的内核。在那里,如果您的环境是 tensorflow 环境,您可以使用 import tensorflow as tf 之类的东西。我也建议人们从 jupyter 进入 tensorflow 环境。我将有关此的多个问题重定向到此处。 为什么 jupyter lab 不像 jupyter notebook 那样继承环境?无论如何,这解决了我的问题,所以谢谢。 它有助于命名内核,以便指定它与哪个环境/用途相关。【参考方案2】:

使用nb_conda_kernels 的解决方案。首先,将其安装在您的基础环境中:

(base)$ conda install -c conda-forge nb_conda_kernels

然后为了获得 conda_env cenv 的内核:

$ conda activate cenv
(cenv)$ conda install ipykernel
(cenv)$ conda deactivate

您将在下次运行jupyter lab / jupyter notebook 时获得一个名为Python [conda env:cenv] 的新内核

注意: 如果您已经安装了nb_conda_kernels,并且想要创建一个新的 conda 环境并立即访问它

conda create -n new_env_name ipykernel

会做的。

【讨论】:

遗憾的是,这似乎不起作用(jupyter lab version 1.1.4 with python 3.7.4) - 使用上面接受的答案来安装内核。 适用于 Jupyter Lab 1.1.4、Python 3.7.3 和 nb_conda_kernels 2.2.2。无需“安装”内核,除非在您要在笔记本中访问的环境中。 @sappjw 接受的答案有效,但这个答案缺少$ ipython kernel install --user --name=&lt;any_name_for_kernel&gt; 并且在我这样做之前没有看到新内核 @Pherdindy 不同的是,这个答案依赖于 nb-conda_kernels 来检测 conda 环境,从而使 ipython kernel install line 变得不必要 我更喜欢这种方法,因为您可以运行笔记本,安装新软件包并立即反映在笔记本中【参考方案3】:

我尝试了上述两种解决方案,但它们都不太适合我。然后我遇到了这篇解决它的中等文章:https://medium.com/@jeremy.from.earth/multiple-python-kernels-for-jupyter-lab-with-conda-c67e50de3aa3

基本上,在cenv 环境中运行conda install ipykernel 之后,在cenv 环境中运行python -m ipykernel install --user --name cenv 也很好——这样,我们确保在jupyter 环境是cenv 中的环境。干杯!

【讨论】:

当一切都失败时,这对我有用。谢谢!仍然不清楚为什么 nb_conda_kernels 似乎不再自动为我完成这项工作。请注意,根据我的经验,如果您在基础环境中安装了 ipykernel、jupyterlab 和 nb_conda_kernels 并从基础环境中启动 JupyterLab,那么奇怪的是,更有可能看到所有可用的 conda 内核。 对未显示的新 conda env 也这样做了,通过引用 ~/.local/share/jupyter/kernels/ 中的其他现有 conda env 进一步调整生成的 kernel.json【参考方案4】:

以下对我有用

pip install nb_conda

https://github.com/Anaconda-Platform/nb_conda

【讨论】:

github.com/Anaconda-Platform/nb_conda_kernels 建议的命令给了我结果:ERROR: No matching distribution found for nb_conda

以上是关于如何将 conda 环境添加到 jupyter 实验室的主要内容,如果未能解决你的问题,请参考以下文章

jupyter中添加conda环境

转载---jupyter中添加conda环境---kernel配置

Jupyter notebook切换kernel可以使用conda虚拟环境中的库

最全指南如何在 Jupyter Notebook 中切换/使用 conda 虚拟环境?

如何在 Jupyter Notebook 中选择你的 conda 环境

如何在conda 环境中运行jupyter notebook