ChatGPT解决这个技术问题 Extra ChatGPT

将 Conda 环境与 Jupyter Notebook 链接

我正在尝试为使用 python 做一些科学工作创造一个良好的环境。为此,我安装了 Jupyter 和 miniconda。

然后我希望能够拥有不同的环境并将它们与 Jupyter 笔记本一起使用。所以我用 conda 创建了两个自定义环境: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

如何将 sys.executable 设置为 python2 的 miniconda env?

如何将 conda env 与笔记本内核绑定?

做 source activate py35 是否有与 jupyter notebook 的链接?

我想我真的错过了什么。

谢谢大家。

- - 编辑

我有多个 jupyter bin :

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

我这里只有一个内核/usr/local/share/jupyter/kernels/python2。但是在 Jupyter 内部,我有两个内核,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

所以一切都没有改变

这可能会有所帮助,允许您选择在 ipython 中运行内核的环境:groups.google.com/a/continuum.io/forum/m/#!topic/anaconda/…
谢谢,我会调查的
请在此处查看我的答案:stackoverflow.com/questions/30492623/… - 您可能希望将提示与 --name 参数一起使用。

Z
Zoltán

对于 Anaconda,我建议您使用更简单、更合适的解决方案;看看nb_conda_kernels package

它允许您“在 Jupyter Notebook 中管理基于 conda 环境的内核”。

从 Anaconda 版本 4.1.0 起应该包含它,否则只需使用

conda install nb_conda

现在您应该可以从 Notebook 界面直接管理所有内容了。

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

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


这个包很好用!您只需在激活环境时安装它。该环境立即显示在笔记本的新菜单选择中。因此,您必须对要添加到列表中的每个环境执行此操作。
安装 nb_conda 的缺点是会使 conda 环境混乱。有解决方法吗?
@Quickbeam2k1,您只需将其安装到您运行 Jupyter 笔记本的环境中。这允许您将 Jupyter 安装到根环境中并在各种其他环境中运行笔记本,而无需在每个环境中安装 Jupyter。
他们改变了什么吗?上次我尝试这个时,由于 nb_conda 内核与 Jupyter 的依赖关系,这是不可能的。
正如我今天(2018 年 2 月 1 日)所尝试的,在 root env 中安装 nb_conda 后,所有 env 都出现在 Jupyter notebook 文件浏览器的内核列表中,无需在其他 env 中安装 nb_conda_kernels。
N
Nihal Sangeeth

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

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

如果您重新启动 jupyter notebook/lab,您将能够看到可用的新内核。

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


这就是我一直使用它的方式。但是,当我在 conda 环境中使用 openjdk 时,我无法让它工作。 JAVA_HOME 通常在 env 激活时设置。当我将它安装为 ipython 内核时,这不会发生。对这种情况有什么想法吗?
v
vedrano

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

conda install -n root nb_conda_kernels

jupyter notebook

是的。我也必须这样做,虽然这有点违反直觉,因为 nb_conda 只应该作为内核进入你想要的环境中。
t
tdehaeze

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

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

现在它正在工作。


A
Armughan Shahid

这对我有用:

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

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

conda install -c anaconda ipykernel

p
pari

对我有用的是:创建虚拟环境,安装 ipykernel,在 jupyter 内核中注册虚拟环境并加载 jupyter notebook:

$ 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 notebook 中,您应该能够在其他内核列表中找到创建的环境