连接 Conda 环境与木星笔记本

我正在努力创造一个良好的环境,用 Python 做一些科学的东西。为此,我安装了 Jupiter & miniconda。

然后,我希望能够有不同的环境,并使用他们与木星笔记本电脑。因此,我使用 conda 创建了两个定制 envs: py27和 py35。

> conda env list
# conda environments:
#
py27                     /Users/***/miniconda3/envs/py27
py35                     /Users/***/miniconda3/envs/py35
root                  *  /Users/***/miniconda3

然后在我的笔记本上我有两个内核 python 2python 3。 在笔记本电脑中,我得到了 python3内核的如下内容:

> import sys
> print(sys.executable)
/Users/***/miniconda3/envs/py35/bin/python

对于 python2内核:

> import sys
> print(sys.executable)
/usr/local/opt/python/bin/python2.7
  • 如何将 python2的 sys.executable设置为 miniconda env?
  • 我怎样才能将一个 conda env 与一个笔记本内核绑定在一起?
  • source activate py35是否与 jupyter notebook有联系?

我觉得我真的错过了什么。

谢谢大家。

编辑

我有多个木星舱:

> where jupyter
/usr/local/bin/jupyter
/usr/local/bin/jupyter
/Users/ThomasDehaeze/miniconda3/bin/jupyter

我在这里只有一个内核 /usr/local/share/jupyter/kernels/python2。 但是在木星内部,我有两个内核,python2python3。我在哪里可以找到另一个?


我从 /usr/local/share/jupyter/kernels/python2修改了 kernel.json:

{
"display_name": "Python 2",
"language": "python",
"argv": [
"/Users/***/miniconda3/envs/py27/bin/python2.7",
"-m",
"ipykernel",
"-f",
"{connection_file}"
]
}

然后:

import sys
print(sys.executable)
/usr/local/opt/python/bin/python2.7

所以什么都没变

88461 次浏览

我找到了解决方案。内核的设置位于这里 ~/Library/Jupyter/kernels/

然后我修改了 kernel.json文件并设置了 python 的正确路径。

现在起作用了。

对于水蟒,我建议你一个更容易和适当的解决方案; 看看 Nb _ conda _ kernel 包

它允许你“在 Jupiter 笔记本中管理基于环境的内核”。

应该包含在 Anaconda 4.1.0版本中,否则只需使用

conda install nb_conda

现在您应该能够从 Notebook 界面直接管理所有这些内容。

注意,只有安装了 Jupiter 内核的环境(对于 Python,是 ipykernel包)。引自 nb_conda_kernels GitHub 页面:

您希望在笔记本中访问的任何其他环境都必须安装适当的内核包。例如,要访问 Python 环境,它必须具有 ipykernel 包;。

conda install -n python_env ipykernel

不知道还有什么其他帮助,但对我来说,关键是安装 nb_conda_kernels在根 conda 环境。尝试将它安装在特定的 conda 环境中,并没有使得 Jupiter Notebook 能够使用默认的 conda 环境之外的其他 conda 环境。

conda install -n root nb_conda_kernels


jupyter notebook

假设您的 conda-env 名为 cenv,其简单程序如下:

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

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

PS: 如果你正在使用 viralenv 等,上面的步骤可以很好的运行。

这对我很有效:

source activate {environment_name}
python -m ipykernel install --user --name={environment_name};

如果没有安装 ipykernel,请使用以下命令:

conda install -c anaconda ipykernel

对我有效的方法是: 创建虚拟环境、安装 ipykernel、在 jupyter 内核中注册虚拟环境并加载 jupyter 笔记本电脑:

$ conda create -n testEnv python=3.6
$ conda activate testEnv
(testEnv)$ conda install ipykernel
(testEnv)$ ipython kernel install --user --name=testEnv
(testEnv)$ jupyter notebook

在这之后,在 Jupyter 笔记本中,您应该能够在其他内核的列表中找到已创建的环境

如果您使用来自 docker 映像的 jupyter 笔记本(例如 jupyter/scypy-book) ,则可以使用挂载的 conda 环境作为内核。

  1. 带有:

docker run -d -v "/opt/anaconda/envs:/opt/conda/envs" -p 10000:8888 jupyter/scipy-notebook

  1. 在 jupyter 终端的基本 env 中安装 nb _ conda _ kernel:

(base) jovyan@NUM:~$ conda install nb_conda_kernels

  1. 从挂载的卷(必须在此之前创建)激活应该使用的 env:

(base) jovyan@NUM:~$ conda activate useEnv

  1. 将 ipykernel 安装到 useEnv:

(useEnv) jovyan@NUM:~$ conda install -c anaconda ipykernel

  1. 安装内核

(useEnv) jovyan@NUM:~$ python -m ipykernel install --user --name=useEnv

然后您可以选择新安装的内核 useEnv在一个木星笔记本电脑。

对于我来说,我并不清楚5agado 公认答案中的 nb_conda_kernelsipykernel软件包必须安装在哪里,以及它是否以及如何在木星笔记本终端内工作。