如何在Jupyter Lab中添加Conda环境


81

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

我安装了nb_conda_kernels应该可以做到这一点的软件包,但是它并没有按照我的意愿工作。确实,假设我创建了一个新的Conda Environment,然后从基础上启动了jupyter Lab,我看不到新环境是可用的内核。

我找到了一个“修复程序”,它每次都可以工作,但是根本不方便。如果我在新环境中安装Jupyter Notebook,然后从该新环境中启动jupyter Notebook,将其关闭,返回到基础环境,然后从基础环境中启动Jupyter Lab,则我的新环境可以作为Jupyter Lab中的内核使用。

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

Answers:


159

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

$ conda activate cenv
(cenv)$ conda install ipykernel
(cenv)$ ipython kernel install --user --name=<any_name_for_kernel>
(cenv($ conda deactivate

如果重新启动jupyter笔记本/实验室,您将能够看到可用的新内核。

PS:如果您使用的是virtualenv等,则上述步骤很有效。


7
我指导人们在使用tensorflow环境在jupyter实验室/笔记本中工作时遇到困难,以寻求答案。它为我工作。谢谢。
aez

1
我只会补充说,一旦有了新内核,请转到jupyter笔记本,然后在“内核”下,将“更改内核”选择为新创建的内核。到达那里后,如果您的环境是张量流环境,则可以使用将tensorflow导入tf等功能。对于那些从jupyter进入tensorflow环境的人,我也建议这样做。我将关于此的多个问题重定向到此处。
伊万,

4
为什么jupyter实验室不像jupyter笔记本那样为我继承环境?无论如何,这解决了我的问题,因此谢谢。
弗雷迪

1
它有助于命名内核,以便指定内核绑定到的环境/用途。
ohailolcat

22

使用的解决方案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

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

注意:如果已安装nb_conda_kernels,并且想要创建一个新的conda环境并立即对其进行访问,则

conda create -n new_env_name ipykernel

会做的工作。


1
遗憾的是,这似乎不起作用(带有python 3.7.4的jupyter实验室版本1.1.4)-使用上面接受的答案来安装内核。
philmaweb

1
适用于Jupyter Lab 1.1.4,Python 3.7.3和nb_conda_kernels 2.2.2。除了要在笔记本中访问的环境外,无需“安装”内核。
sappjw

@sappjw可接受的答案有效,但是$ ipython kernel install --user --name=<any_name_for_kernel>直到我这样做之前,这个答案仍然缺失并且没有看到新内核
Pherdindy

@Pherdindy的不同之处在于,此答案依赖于nb-conda_kernels来检测呈现ipython kernel install line不必要内容的conda环境
Statistic Dean

我更喜欢这种方法,因为您可以运行笔记本电脑,安装新软件包并立即将其反映在笔记本电脑中
Aus_10

7

我尝试了上述两种解决方案,但它们对我而言并不奏效。然后我遇到了解决该问题的这篇中等文章:https : //medium.com/@jeremy.from.earth/multiple-python-kernels-for-jupyter-lab-with-conda-c67e50de3aa3

从本质上讲,运行后conda install ipykernel里面你的cenv环境中,它也很好地运行python -m ipykernel install --user --name cenv的内cenv环境-这样,我们确保其在jupyter环境中使用的Python版本是那个在cenv。干杯!


2
当其他所有方法都失败时,这对我有用。谢谢!仍然不清楚为什么nb_conda_kernels似乎不再自动为我完成这项工作。请注意,根据我的经验,如果您在基本环境中安装了ipykernel,jupyterlab和nb_conda_kernels并从基本环境中启动JupyterLab,则很可能会奇怪地看到所有可用的conda内核。
emigre459
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.