Jupyter notebooks in Visual Studio Code does not use the active virtual environment

Solution 1:

It's because there is an extra step needed - you need to explicitly install a Jupyter kernel that points to your new Python virtual environment. You can't simply activate Jupyter-lab or Notebook from the virtual environment. This has tripped me up before, too.

Follow the advice here: Using Jupyter notebooks with a virtual environment

And, in fact, there can be an issue where your kernel still doesn't point to the correct Python binary, in which case you need to change one suggestion in the above advice process:

From: ipython kernel install --user --name=projectname

To: python3 -m ipykernel install --user --name=projectname

(This correction comes from a comment to Jupyter Notebook is loading incorrect Python kernel #2563.)

*and don't forget to restart VSCode

Solution 2:

I find it easy to use pipenv install ipykernel to set up the virtual environment with the Jupyter kernel in one go (comment on rocksteady's answer).

Solution 3:

for me solved by adding the path of my venv to the settings.json,

now the kernel is detected automatically

"python.pythonPath": "P:\Miniconda3_64bit\venv\Scripts\python.exe",

Solution 4:

For VSCode, your Jupyter kernel is not necessarily using the same python interpreter you're using at the command line.

Use Ctrl + Shift + P to open the Command Palette, and select "Notebook: Select Notebook Kernel"

Then choose the interpreter you're using at the terminal