ChatGPT解决这个技术问题 Extra ChatGPT

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

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

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

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

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


N
Nihal Sangeeth

假设您的 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 等,上述步骤很好。


我指导那些难以获得 tensorflow 环境以在 jupyter 实验室/笔记本中工作的人来回答这个问题。它对我有用。谢谢。
我只想补充一点,一旦你有了新的内核,就去你的 jupyter notebook,在“kernel”下,选择“change kernel”到你新创建的内核。在那里,如果您的环境是 tensorflow 环境,您可以使用 import tensorflow as tf 之类的东西。我也建议人们从 jupyter 进入 tensorflow 环境。我将多个问题重定向到这里。
为什么 jupyter lab 不像 jupyter notebook 那样继承环境?无论如何,这解决了我的问题,所以谢谢。
它有助于命名内核,以便它指定它所绑定的环境/用途。
虽然是一个有效的答案,但我仍然推荐使用 nb_conda_kernels 方法,因为它避免了容易出错的手动注册步骤。
S
Statistic Dean

使用 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 变得不必要
我更喜欢这种方法,因为您可以运行笔记本,安装新软件包并立即将其反映在笔记本中
D
Daniel Firebanks-Quevedo

我尝试了上述两种解决方案,但它们并不适合我。然后我遇到了解决它的这篇中等文章: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 环境中使用的 python 版本是cenv 中的那个。干杯!


当所有其他方法都失败时,这对我有用。谢谢!仍然不清楚为什么 nb_conda_kernels 似乎不再自动为我完成这项工作。请注意,根据我的经验,如果您在基础环境中安装了 ipykernel、jupyterlab 和 nb_conda_kernels 并从基础环境中启动 JupyterLab,那么奇怪的是,更有可能看到所有可用的 conda 内核。
对未显示的新 conda env 也这样做,通过引用 ~/.local/share/jupyter/kernels/ 中的其他现有 conda env 进一步调整生成的 kernel.json
我同意这是一个稍微不容易出错的 stackoverflow.com/a/53546634/570918 版本,但更强大的是 nb_conda_kernels 方法,它会自动检测安装了 ipykernel(或其他特定语言的内核包)的任何环境。
R
Ryan M

以下对我有用

pip install nb_conda

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


建议的命令给了我结果:ERROR: No matching distribution found for nb_conda
通过 conda install nb_conda 安装它