在VsCode中激活Anaconda环境

111

我已经在我的系统上安装了Anaconda和VsCode,但是当运行Python脚本时,我该如何让VsCode激活特定的环境?


10
大多数回答都是针对Windows系统的。希望能有一个包括MacOS和Linux系统的答案。 - Soren
15个回答

121

只需使用

  1. cmd + shift + P(在MS Windows上为ctrl + shift + P
  2. 搜索选择解释器

pyhton : Select Interpreter

选择它,它将显示您通过conda和其他Python版本创建的虚拟环境列表。

Activating conda virtual environment

选择环境,你就可以开始了。
引用“选择和激活环境”文档 选择列表中的解释器会在工作区设置中添加一个条目python.pythonPath,其中包含解释器的路径。

14
可以。当我尝试使用CodeRunner扩展运行该脚本时,它似乎无法识别我正在使用conda环境,并给出了一个错误,指出模块不存在。不过,这个方法有效。 - humble
4
这似乎没有为终端会话设置路径变量或设置系统或用户的PATH变量,即使是在虚拟环境中也没有。 - Ryan
这似乎也不会影响在Jupyter窗口中运行代码单元时使用的环境。 - BallpointBen
3
它能工作,但我的情况还有另一个问题!当我选择“python:选择解释器”选项时,它不会显示所有的anaconda环境!实际上,它只显示了我不想要的其中两个。有人有什么想法吗? - Hamidreza
1
@malthe 前往 Anaconda Navigator,在 Home 选项卡中选择您的 venv,就在 Application on 标签旁边,然后从 Navigator 启动 VS Code(如果显示 launch 选项而不是 install 选项,请先安装它,即使您已经在计算机上安装了 VS Code)。就像 Zhenyu 在下面解释的那样。 - Hamidreza
显示剩余9条评论

37
如果Anaconda是您的默认Python安装程序,则只需安装Microsoft Python扩展即可正常工作。

以下内容适用于所有Python编辑器,或者如果需要指向特定的安装程序:

在settings.json中使用类似以下内容编辑python.path:

"python.pythonPath": "C:\\Anaconda3\\envs\\py34\\python.exe"

编辑 settings.json 的说明


18
如何激活特定的环境,使得脚本在该Anaconda环境中运行? - ctrlalt313373
发布的答案是如何在VS Code中使用特定环境(如Anaconda)运行.py文件。 我在settings.json中的Anaconda安装路径为python.pythonPath": "C:\\Anaconda3\\envs\\py34\\python.exe",请注意我更新了使用“\”来转义路径中的单个“\”。 然后右键单击.py代码并选择“在Python终端中运行文件”,希望这可以帮助到您。 - eric_camplin
10
现在vscode有一个名为python.venvPath的设置,它允许您使用命令面板中的Python: Select Workspace Interpreter来选择您想要使用的虚拟环境(详细信息请参见我的回答)。这样一来,您就不必每次更改环境时都编辑pythonpath。 - alexbhandari
2
仅有这个settings.json是不够的。似乎还需要launch.json才能在OSX上运行,例如:"python.pythonPath": "/Users/me/miniconda2/envs/py27/bin/python"。 - AnneTheAgile

28

在VSCode的settings.json文件中设置python.pythonPath对我无效,但另一种方法有效。根据Anaconda文档中的说明,在Microsoft Visual Studio Code (VS Code)中:

当您从Navigator启动VS Code时,VS Code会配置为使用当前选定环境中的Python解释器。

Anaconda Navigator


只有在使用Anaconda Navigator启动VSCode时,才会设置conda路径。关闭VSCode后,conda路径设置将不会被保留。 - Péter Szilvási

22
我发现最好的选择是在vscode设置中设置python.venvPath参数为你的anaconda envs文件夹。
"python.venvPath": "/Users/[...]/Anaconda3/envs"

然后,如果您打开命令面板(在Windows / Linux上按ctl + shift + P,在Mac上按cmd + shift + P),并键入Python: Select Interpreter,则会显示所有环境,您可以选择要使用的环境。

还需要安装python扩展程序以使用Select Interpreter选项。


更新于05/2023:根据ColinMac的评论:Select Workspace Interpreter已更改为Select Interpreter


1
在Windows系统中,按下Ctrl + Comma可以打开VSCode设置 :) 谢谢。 - Prayson W. Daniel
在Windows上,这个方法适用于我:"python.venvPath": "C:\Users\User\AppData\Local\Continuum\anaconda3"。使用VSCode 1.19.1。 - Andy Longwill
7
在更新的版本中,该命令为“Python: 选择解释器”。 - ColinMac

10

虽然被批准的答案是正确的,但我想展示一种略微不同的方法(基于这个答案)。

如果您从Vscode启动它,则Vscode可以自动选择正确的Anaconda环境。只需将以下内容添加到用户/工作区设置中:

{
    "python.pythonPath": "C:/<proper anaconda path>/Anaconda3/envs/${env:CONDA_DEFAULT_ENV}/python"
}

它适用于Windows,macOS和可能的Unix。 在vscode中进一步阅读有关变量替换的信息:此处


2
感谢您的回答。在Linux上,它是这样的:{ "python.pythonPath": "/<proper path>/anaconda3/envs/${env:CONDA_DEFAULT_ENV}/bin/python" }。同时,在更改环境后,我必须重新打开VS Code。 - Sathish
1
在Mac/Unix上获取Python路径的简单方法是运行以下命令:conda activate <your env> && which python - Gamrix

7

不幸的是,这在 macOS 上不起作用。尽管我在我的 .zshrc 中设置了 export CONDA_DEFAULT_ENV='$HOME/anaconda3/envs/dev',并且在我的 VSCode 首选项中设置了 "python.pythonPath": "${env.CONDA_DEFAULT_ENV}/bin/python",但内置终端仍然不使用该环境的 Python,即使我从设置了该变量的命令行启动了 VSCode。


7

只需从Anaconda Navigator启动VS Code即可。这对我很有效。


4

请查看以下笔记:https://code.visualstudio.com/docs/python/environments#_conda-environments

如前所述,Python扩展程序会自动检测存在的conda环境,前提是该环境包含Python解释器。例如,下面的命令将创建一个带有Python 3.4解释器和多个库的conda环境,然后在VS Code中显示可用解释器列表:

 conda create -n env-01 python=3.4 scipy=0.15.0 astroid babel 

相反,如果您未指定解释器(如conda create --name env-00),则环境将不会出现在列表中。

1
我正要发布相同的答案!在某些情况下,这是唯一正确的答案!VSCode文档清楚地解释了,如果conda环境中没有python模块,它们将不会出现在VSCode的解释器列表中。因此,例如,如果您刚刚创建了一个空的conda虚拟环境而没有任何模块,您将看不到它在VSCode中列出。所以我只需执行 conda install --name my_env_name python,我的问题就解决了。有关此命令的更多信息,请参见:https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-pkgs.html#installing-packages - aderchox

3

最简单的方法是-

  1. 首先打开终端或命令行并导航到项目目录,在那里您创建了虚拟环境。

  2. 然后使用以下命令激活虚拟环境: conda activate venv_name

  3. 激活后,在终端中键入- code .

这将用已激活的虚拟环境打开vscode。请查看图片底部。 code .后面的点号告诉终端在vscode中打开当前目录。

enter image description here


1
这个回答不应该被踩。虽然是一个变通方法,但拥有一个工作环境是调试 OP 提出的配置问题的基础。 - Titou
对于 macOS,如果你遇到了"command not found: code"的问题,可能需要输入Cmd ⌘ + Shift ⇧ + P以打开命令调色板,然后输入"shell command"并选择Shell command: Install ‘code’ command in PATH以安装它。 - Tom J

2
如果您需要为项目创建一个独立的环境: 使用 --prefix 选项将环境安装到项目文件夹中:
conda create --prefix C:\your\workspace\root\awesomeEnv\ python=3

在 VSCode 的 launch.json 配置中将你的 "pythonPath" 设置为:

"pythonPath":"${workspaceRoot}/awesomeEnv/python.exe"

我不需要一个单独的环境,但是在osx上使用我的正常conda环境,我需要重定向pythonPath。设置.json似乎可以正确控制IDE内的单元测试。然而,为了使调试工作正常,我还需要在launch.json中设置pythonPath,就像这个答案所说的那样。对我来说,这是; "python.pythonPath": "/Users/me/miniconda2/envs/py27/bin/python" - AnneTheAgile

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接