Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Conda and Visual Studio Code debugging

The goal is to be able to use my environment setup from Conda/Anaconda within the visual studio code debugger. The default pythonpath configuration does not produce this effect - rather it goes to the system default python path (what you get when you type 'python' in a fresh shell).

enter image description here

How do I configure VS Code to use my Conda environment?

like image 977
Andrew Schreiber Avatar asked Apr 29 '17 20:04

Andrew Schreiber


People also ask

Can I use VS Code with anaconda?

In Visual Studio Code you can run Python code with Anaconda by using the Anaconda Prompt, updating the Visual Studio Code workspace settings to be aware of your Anaconda installation, or adding Anaconda to the Windows Path variable.

How does Conda environment change in VS Code?

Conda environments can't be automatically activated in the VS Code Integrated Terminal if the default shell is set to PowerShell. To change the shell, see Integrated terminal - Terminal profiles. You can manually specify the path to the conda executable to use for activation (version 4.4+).


4 Answers

I found a better solution, based on the previous ones:

Go to Workplace Settings. Override the parameter python.venvPath with the Path to folder with a list of Virtual Environments. For the case of anaconda:

User setting

This setting enables VS Code to recognize the available conda environments. Thus, we can click on the current python interpreter and switch to others:

active interpreter enter image description here

like image 160
Ronald M. Gualán Saavedra Avatar answered Oct 19 '22 03:10

Ronald M. Gualán Saavedra


When starting Visual Studio Code from an activated Conda environment, I was able to use the environment variable to specify the path (MacOS):

{
    "python.pythonPath": "~/anaconda/envs/${env.CONDA_DEFAULT_ENV}/bin/python"
}

Go to Workplace Settings by pressing Cmd , or navigating from the top menu, then add this to settings.json

like image 9
Varun Chatterji Avatar answered Oct 19 '22 02:10

Varun Chatterji


For anyone looking for recent info on this, I recently came across this error where I had a conda env selected as the interpreter but the debugger was being launched with the base environment. This caused issues as the two environments had different versions of pyspark and caused the following error: Python in worker has different version 3.8 than that in driver 3.9

Then I came across this issue, and while it doesn't provide a fix, it gives a workaround as follows:

  • Close VScode (if running)
  • Open a terminal
  • (optional) navigate to the folder you want e.g. cd /projects/cool_name
  • Activate conda environment conda activate my_env
  • Launch VScode from the current terminal code .

This will launch new VScode window in your current directory and using the debugger should pick up my_env.

like image 3
Carlos Amaral Avatar answered Oct 19 '22 03:10

Carlos Amaral


On MacOS, follow these steps:

  1. Install Python for VSCode (the most popular python extension)

  2. Go to Workplace Settings by pressing Cmd , or navigating from the top menu.

enter image description here

  1. Add the path of your specific conda environment, like seen above, to your settings.json file. You can find the paths of your conda environments by typing conda env list in terminal.

  2. Save and restart VS Code

Now the debugger will automatically use that environment! As far as I know, you must do this individually for each project.

For other ways of configuring your python path, here is a useful post by the extension author: https://github.com/DonJayamanne/pythonVSCode/wiki/Python-Path-and-Version

like image 1
Andrew Schreiber Avatar answered Oct 19 '22 02:10

Andrew Schreiber