将 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 环境?
  • 如何将 conda env 与笔记本内核绑定?
  • 正在做 source activate py35jupyter 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 。我在哪里可以找到另一个?


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

 {
 "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

所以什么都没有改变

原文由 tdehaeze 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 759
2 个回答

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

它允许您“在 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

原文由 5agado 发布,翻译遵循 CC BY-SA 4.0 许可协议

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

原文由 Nihal Sangeeth 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题