首页 文章

将Conda环境与Jupyter Notebook联系起来

提问于
浏览
31

我正在努力为python做一些科学的东西设置一个良好的环境 . 为此,我安装了Jupyter和miniconda .

然后我希望能够拥有不同的环境,并将它们与Jupyter笔记本一起使用 . 所以我用conda创建了两个自定义env: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 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 . 我在哪里可以找到另一个?


我从 /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

所以没有任何改变

4 回答

  • 59

    对于Anaconda,我建议你一个更容易和更合适的解决方案;只是看看nb_conda_kernels package .

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

    自Anaconda版本4.1.0以来应该包括在内,否则只需使用

    conda install nb_conda
    

    现在,您应该能够从Notebook界面直接管理所有目标 .

  • 1

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

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

    现在它正在运作 .

  • 5

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

    conda install -n root nb_conda_kernels
    
    jupyter notebook
    
  • 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笔记本/实验室,您将能够看到新内核可用 .

    PS:如果您使用virtualenv等,上述步骤仍然有效 .

相关问题