如何将 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=<any_name_for_kernel>
并且在我这样做之前没有看到新内核
@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环境---kernel配置
Jupyter notebook切换kernel可以使用conda虚拟环境中的库
最全指南如何在 Jupyter Notebook 中切换/使用 conda 虚拟环境?