Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Link Conda environment with Jupyter Notebook

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

like image 311
tdehaeze Avatar asked May 25 '16 09:05

tdehaeze


People also ask

Can I use conda in Jupyter Notebook?

Jupyter Notebook can easily be installed using conda. Our plan is to only install it in the base environment, and then just switch between sub-environments to avoid setting up Jupyter Lab in each environment.


2 Answers

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.

like image 119
5agado Avatar answered Sep 21 '22 15:09

5agado


Assuming your conda-env is named cenv, it is as simple as :

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

If you restart your jupyter notebook/lab you will be able to see the new kernel available.

PS: If you are using virtualenv etc. the above steps hold good.

like image 33
Nihal Sangeeth Avatar answered Sep 24 '22 15:09

Nihal Sangeeth