Working with Anaconda in Visual Studio Code

喜欢而已 提交于 2020-08-17 15:57:11

问题


I am getting a bit confused here, the latest Anaconda Distribution, 2018.12 at time of writing comes with an option to install Microsoft Visual Studio Code, which is great.

When launching VSC and after Python: Select Interpreter and with a fresh install of Anaconda, I can see ~Anaconda3\python.exe which I assume is the Anaconda Python Environment, however, when I try to run some commands, I am getting:

PS ~\Documents\Python Scripts\vs> ~/Anaconda3/Scripts/activate
PS ~\Documents\Python Scripts\vs> conda activate base

conda : The term 'conda' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. At line:1 char:1

Now I know that it might be related to the environment variables but I find it highly odd as during the Anaconda installation, there are specific mentions that it is not required to add the Anaconda path to the environment variables. However after the error, the integrated terminal manages to launch Python and I am able to run code.

Next in line is that I am unable to view any variables in the debugger after running a simple script, as shown in the tutorial here:

msg = "Hello World"
print(msg)

I do expect to see similar results as shown in the link such as the dunder variables, I have also updated my launch.json with stopOnEntry = True following the steps.

I would like to know if it is possible to use Visual Studio Code with Anaconda as a interpreter without registering variables from the original distribution and if I am missing out anything required.

I expected the experience to be more straight forward but also I might be missing something, I am running on Windows 10.


回答1:


Activating a conda environment does not place conda on your PATH. You need to launch the Anaconda Prompt app from your Start menu to get a command-line with conda on your PATH if you didn't check the box to include conda during installation.

Also realize that conda only supports PowerShell as of conda 4.6 which was released in January 2019.

And the Python extension for VS Code works with conda fine. Create a conda environment and the extension will allow you to select it as your environment/interpreter.




回答2:


For me, this solution worked in VSC (1.40) ->

1.Set the Interpreter to Python 3.7.1 ('base':conda)

2. Rather than using PowerShell I switched (Select Default Shell) to Command Prompt and started a New Terminal -> now it's in conda (base) environment.

[for Anaconda Distribution, 2018.12]




回答3:


I beat my head on this for far too long... launching VS Code from an Anaconda Prompt both feels clunky and didn't really work for integrated Powershell terminals (the default VS Code integrated terminal on Windows)

I wanted to be able to launch VS Code from any prompt (and usually the Windows menu shortcut) and still interact with Conda.

These two methods both worked for Anaconda 2020.02, VS Code 1.44.0, on Windows 10.

Easy & Quick

Switch VS Code to use cmd.exe as the default integrated terminal shell by:

  • opening the command palette (Control-Shift-P)
  • search for Terminal: Select Default Shell
  • select Command Prompt

Harder / Powershell

  • add the location of conda to your PATH (if you did not add it via the installer). For me on an "All Users" install this is C:\ProgramData\Anaconda\Scripts
  • from an Administrator Powershell prompt change the Powershell Execution Policy to remote signed i.e. Set-ExecutionPolicy RemoteSigned
  • open an Anaconda Prompt and run conda init powershell which will add Conda related startup to a Powershell profile.ps1 somewhere in your user's profile.

When you run VS Code and either debug a .py or launch a Powershell integrated terminal you should now see a message about "Loading personal and system profiles" and the Conda environment being prefixed on the terminal's prompt.




回答4:


Adding this setting to settings.json solved for me:

"terminal.integrated.shellArgs.windows": [
       "PowerShell -NoExit -File C:\\ProgramFiles\\Anaconda\\shell\\condabin\\conda-hook.ps1"
    ]

PS: This answer is based on kenlukas's answer, but for powershell instead of cmd.




回答5:


For me, this article solved my issue (on Windows 10): Specifically, the settings.json entry: terminal.integrated.shellArgs.windows e.g.:

    "terminal.integrated.shellArgs.windows": [
        "/K", 
        "C:\\Programs\\Anaconda3\\Scripts\\activate.bat & conda activate py37"
    ]

It works well with command line but doesn't seem to work with PowerShell.




回答6:


Following the trails of @andre-barbosa and @kenlukas, the below configuration works well for me (PowerShell on Windows 10):

"terminal.integrated.shellArgs.windows": [
    "-ExecutionPolicy",
    "ByPass",
    "-NoExit",
    "-Command",
    "your-path-to-\\conda-hook.ps1",
    ";conda activate 'your-path-to-the-base-conda-environment'"
]

Substitute "your-path-to-\conda-hook.ps1" and "your-path-to-the-base-conda-environment" with your actual path, and add it to VSCode's settings.json. Check out the properties of your "Anaconda Powershell Prompt" shortcut and you'll find what you need.

The key is really to obey the rules of VSCode's JSON configuration file, by turning the whole arguments string into a comma separated list.




回答7:


To set anaconda prompt as your default terminal in VScode:

  1. (type) CTRL + SHIFT + P
  2. (search for:) open settings
  3. (click:) Preferences: Open Settings (JSON)

Then add three line configuration:

{
    ... # any other settings you have already added (remove this line)

    "terminal.integrated.shell.windows": "C:\\WINDOWS\\System32\\cmd.exe",
    "terminal.integrated.shellArgs.windows": ["/K", "C:\\Anaconda3\\Scripts\\activate.bat C:\\Anaconda3"],
    "python.condaPath": "C:\\Anaconda3\\Scripts\\conda.exe"
}

Finally, Restart your VScode




回答8:


If you launch VS Code application from inside the Anaconda Navigator application, you automatically get a "conda-aware" VSCode integrated terminal.

This way you don't need to change the settings in VS Code itself.



来源:https://stackoverflow.com/questions/54828713/working-with-anaconda-in-visual-studio-code

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!