Link Conda environment with Jupyter Notebook

Thomas Dehaeze picture Thomas Dehaeze · May 25, 2016 · Viewed 69.1k times · Source

I'm trying to set a good environnement for doing some scientific stuff with python. To do so, I installed Jupyter & miniconda.

Then I want to be able to have different environnement and use them with Jupyter notebooks. So I created two custom envs with conda : py27 and py35.

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

Then on my notebook I have two kernels python 2 and python 3. Inside a notebook, I get the following with the python3 kernel :

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

And this with the python2 kernel :

> import sys
> print(sys.executable)
/usr/local/opt/python/bin/python2.7
  • How can I set the sys.executable to miniconda env for python2 ?
  • How can I bind a conda env with a notebook kernel ?
  • Is doing source activate py35 has a link with jupyter notebook ?

I think I really missed something.

Thank you everyone.

--- edit

I have multiple jupyter bin :

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

I have only one kernel here /usr/local/share/jupyter/kernels/python2. But inside Jupyter, I have two kernels, python2 and python3. Where can I find the other one ?


I modified kernel.json from /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}"
 ]
}

And then :

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

So nothing has changed

Answer

5agado picture 5agado · Aug 10, 2016

For Anaconda I suggest you a much easier and proper solution; just give a look at the nb_conda_kernels package.

It allows you to "manage your conda environment-based kernels inside the Jupyter Notebook".

Is should be included since Anaconda version 4.1.0, otherwise simply use

conda install nb_conda

Now you should be able to manage all direcly from the Notebook interface.