How to add conda environment to jupyter lab
Solution 1
A solution using nb_conda_kernels
. First, install it in your base environment :
(base)$ conda install -c conda-forge nb_conda_kernels
Then in order to get a kernel for the conda_env cenv
:
$ conda activate cenv
(cenv)$ conda install ipykernel
(cenv)$ conda deactivate
You will get a new kernel named Python [conda env:cenv]
in your next run of jupyter lab
/ jupyter notebook
Note :
If you have installed nb_conda_kernels
, and want to create a new conda environment and have it accessible right away then
conda create -n new_env_name ipykernel
will do the job.
Solution 2
Assuming your conda-env is named cenv
, it is as simple as :
$ conda activate cenv # . ./cenv/bin/activate in case of virtualenv
(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. For newer versions of jupyter kernel will appear without restarting the instance. Just refresh by pressing F5.
PS: If you are using virtualenv etc. the above steps hold good.
Solution 3
I tried both of the above solutions and they didn't quite work for me. Then I encountered this medium article which solved it: https://medium.com/@jeremy.from.earth/multiple-python-kernels-for-jupyter-lab-with-conda-c67e50de3aa3
Essentially, after running conda install ipykernel
inside of your cenv
environment, it is also good to run python -m ipykernel install --user --name cenv
within the cenv
environment - that way, we make sure that the version of python that is used within the jupyter environment is the one in cenv
. Cheers!
Solution 4
The following worked for me
pip install nb_conda
Statistic Dean
I'm a French Student with some interests in machine learning and more specifically deep learning lately.
Updated on July 08, 2022Comments
-
Statistic Dean almost 2 years
I'm using Jupyter Lab and I'm having trouble to add
conda
environment. The idea is to launch Jupyter Lab from my base environment, and then to be able to choose my other conda envs as kernels.I installed the package
nb_conda_kernels
which is supposed to do just that, but it's not working as I want. Indeed, let's assume I create a new Conda Environment, then I launch jupyter lab from base, I can't see the new environment as an available kernel.I have found a "fix", which works everytime but is not convenient at all. If I install Jupyter Notebook in my new environment, then launch a jupyter notebook from this new environment, close it, go back to base environment, and then launch Jupyter Lab from base environment, my new environment is available as a kernel in Jupyter Lab.
If you know how to make it work without this "fix", I would be very grateful.
-
aez over 4 yearsI direct people having difficulties getting a tensorflow environment to work in jupyter lab/notebook to this answer. It worked for me. Thanks.
-
Ivan over 4 yearsI would only add that once you have the new kernel, go to your jupyter notebook and, under "kernel", select "change kernel" to your newly created kernel. Once there you can use things like import tensorflow as tf if your environment was a tensorflow environment. I also recommend this for people getting to a tensorflow environment form jupyter. I redirected multiple questions on that to here.
-
philmaweb over 4 yearsSadly this doesn't seem to work (jupyter lab version 1.1.4 with python 3.7.4) - use the accepted answer above to install the kernel.
-
sappjw over 4 yearsWorks for me with Jupyter Lab 1.1.4, Python 3.7.3, and nb_conda_kernels 2.2.2. No need to "install" the kernel, except in the environment that you want to access in your notebook.
-
Freddy over 4 yearswhy doesn't jupyter lab just inherit the environment as jupyter notebook does for me? Anyway this fixed my problem so thanks for that.
-
Pherdindy about 4 years@sappjw The accepted answer works but this one lacks
$ ipython kernel install --user --name=<any_name_for_kernel>
and did not see the new kernel until I did this -
Statistic Dean about 4 years@Pherdindy the difference is that this answer relies on nb-conda_kernels to detect the conda environment rendering the
ipython kernel install line
unnecessary -
Aus_10 almost 4 yearsI prefer this method as you can be running a notebook, install a new package and have it immediately reflected in the notebook
-
emigre459 almost 4 yearsThis worked for me when all else failed. Thanks! Still not clear on why nb_conda_kernels doesn't seem to automatically do the job for me anymore. Note that, in my experience, if you have ipykernel, jupyterlab, and nb_conda_kernels installed in your base environment and launch JupyterLab from within the base environment, it is more likely to see all available conda kernels, weirdly.
-
ohailolcat over 3 yearsIt helps to name the kernel so that it specifies which environment/use it is tied to.
-
tnwei almost 3 yearsDid this too for a new conda env that wasn't showing up, further adjusted the generated
kernel.json
by referring to other existing conda envs in~/.local/share/jupyter/kernels/
-
banderlog013 over 2 years
-
Hagai Drory over 2 yearsThe proposed command gave me the results:
ERROR: No matching distribution found for nb_conda
-
Fahadakbar about 2 yearsinstall it through
conda install nb_conda
-
Travis almost 2 yearsThis works great for me on Mac and PC, from 2019 to 2022
-
merv almost 2 yearsWhile is an effective answer, I'd still recommend the
nb_conda_kernels
approach instead, since it avoids the manual registration step, which can be prone to mistakes. -
merv almost 2 yearsI agree this is a slightly less error-prone version of stackoverflow.com/a/53546634/570918, but more robust still is the
nb_conda_kernels
approach, which will automatically detect any environments withipykernel
(or other language-specific kernel packages) installed. -
merv almost 2 yearsI'd encourage this be changed this to be the accepted answer, as it is both efficient and robust. Other answers are either wasteful (e.g.,
nb_conda
entails installing Jupyter in every environment) or error prone (e.g., manual user-level registration of kernels). Perhaps it could be improved by noting that one still should launchjupyter notebook
(or variant) from the one environment withnb_conda_kernels
installed and then select the desired kernel from the dropdown in the GUI. -
Valentin_Ștefan almost 2 yearsIn my case
ipython kernel install --user --name=<any_name_for_kernel>
didn't do the trick; I had to doipython kernel install --user --name 'some-name' --display-name "Name that I will see in the Laucher"