在 VsCode 中激活 Anaconda 环境

Posted

技术标签:

【中文标题】在 VsCode 中激活 Anaconda 环境【英文标题】:Activating Anaconda Environment in VsCode 【发布时间】:2017-09-07 04:12:27 【问题描述】:

我让 Anaconda 在我的系统上工作,而 VsCode 也在工作,但是如何让 VsCode 在运行我的 python 脚本时激活特定环境?

【问题讨论】:

大多数答案都是特定于 Windows 的。最好能有一个包含 MacOS 和 Linux 系统的答案。 【参考方案1】:

最简单的方法-

    首先打开终端或命令行并导航到您创建虚拟环境的项目目录。

    然后用命令激活虚拟环境 conda activate venv_name

    一旦激活,在终端类型 - code .

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

【讨论】:

【参考方案2】:

"python.pythonPath" 已弃用,引用自 vscode:

settings.json 中的“python.pythonPath”设置不再是 由 Python 扩展使用。如果需要,您可以使用新设置 改为“python.defaultInterpreterPath”。请记住,您 需要手动更改此设置的值作为 Python 当您更改解释器时,扩展不会修改它。了解更多。

因此,如果您想手动分配路径(不推荐,如上所述),请打开工作区的“settings.json”或默认路径并使用


"python.defaultInterpreterPath": "C:\\Users\\MYUSER\\anaconda3\\envs\\testenv\\python.exe"

【讨论】:

【参考方案3】:

Python Path 现在已弃用,现在您应该设置Conda Path。这样您就可以动态选择不同的环境。

点击ctrl + ,然后搜索Conda Path并添加脚本的绝对路径,例如:

C:\Users\myUser\miniconda3\Scripts\conda.exe

在左下角或通过命令面板为每个项目选择特定环境(ctrl + Shift + P -> 搜索Python: Select Interpreter

【讨论】:

【参考方案4】:

由于我无法通过建议的方式解决我的问题,我将分享我是如何解决的。

首先,即使我能够激活环境,C:\ProgramData\Anaconda3\envs 目录中也不存在相应的环境文件夹。

所以我使用 Anaconda 提示创建了一个新的 anaconda 环境, 将在envs 文件夹中创建一个与给定环境名称相同的新文件夹。

接下来,我在 Anaconda 提示符下激活了该环境。 使用conda install python 命令安装python。

然后在 anaconda navigator 上,在“Applications on”菜单中选择新创建的环境。 通过 Anaconda navigator 启动 vscode。

现在正如其他答案所建议的那样,在 vscode 中,使用Ctrl + Shift + P 键盘快捷键打开了命令面板。 搜索并选中Python: Select Interpreter

如果没有列出新创建的环境解释器,请选择Enter Interpreter Path 并选择与C:\ProgramData\Anaconda3\envs\<your-new-env>\ 类似的新创建的python.exe。 所以总路径看起来像C:\ProgramData\Anaconda3\envs\<your-nev-env>\python.exe

下次以后,该口译员将自动列在其他口译员中。

现在您可能会在 vscode 的左下方看到您选择的 conda 环境。

【讨论】:

【参考方案5】:

我发现如果我们不指定我们想要的python版本,创建的环境是完全空的。因此,为了解决这个问题,我也提供了 python 版本。即

conda create --name env_name python=3.6

所以它现在所做的是安装 python 3.6,现在我们可以选择解释器。为此,请按照以下步骤操作:

    首先,使用Ctrl + Shift + P打开命令面板

    其次,选择Python: select Interpreter

    现在,选择Enter interpreter path

    我们必须添加环境所在的路径,默认位置是 C:\Users\YourUserName\Anaconda3\envs\env_name

最后,您已成功激活您的环境。 它现在可能是最好的方法,但它对我有用。如果有任何问题,请告诉我。

【讨论】:

【参考方案6】:

只需从 Anaconda Navigator 启动 VS Code。它对我有用。

【讨论】:

【参考方案7】:

简单地使用

    shift + cmd + P 搜索选择口译员

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

    选择环境,您就可以开始了。

引用“选择并激活环境”docs

从列表中选择解释器会为python.pythonPath 添加一个条目Workspace Settings 中的解释器路径。

【讨论】:

这行得通。但是,当我尝试使用 CodeRunner 扩展程序运行脚本时,它似乎没有识别出我在 conda 环境中并给我一个错误,说模块不存在 是的,这似乎没有为终端会话提供路径变量或设置系统或用户 PATH 变量,即使是暂时在虚拟环境中也是如此。 这似乎也不会影响在 Jupyter 窗口中运行代码单元时使用的环境 它有效,但我的情况还有另一个问题!当我选择“python:选择解释器”选项时,它并没有显示所有的 anaconda 环境!实际上它只是显示其中 2 个我不想要。有人知道吗? @malthe 转到Anaconda Navigator 并在Home 标签中选择Application on 标签旁边的venv,然后从导航器启动VS 代码(如果不是launch 选项,它是显示install选项,先安装它,即使你的电脑上安装了vs代码)就像下面振宇解释的那样。【参考方案8】:

我发现一个 hacky 解决方案将您的环境变量替换为原始 python 文件,这样它就可以从您的 anaconda 文件夹中的 python.exe 调用,所以当您引用 python 时,它将引用 anaconda 的 python。

所以你在 env var 中唯一的 python 路径应该是这样的:

"C:\Anaconda3\envs\py34\", or wherever the python executable lives

如果您需要更多详细信息,我不介意解释。 :)

【讨论】:

【参考方案9】:

在 VSCode 的 settings.json 文件中设置 python.pythonPath 对我不起作用,但另一种方法可以。根据 Microsoft Visual Studio Code (VS Code) 的 Anaconda 文档:

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

【讨论】:

高效解决问题的方法。【参考方案10】:

在此处查找注释:https://code.visualstudio.com/docs/python/environments#_conda-environments

如前所述,Python 扩展会自动检测现有的 conda 环境,前提是环境包含 Python 口译员。例如,以下命令创建一个 conda 带有 Python 3.4 解释器和几个库的环境, 然后 VS Code 会显示在可用解释器列表中:

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

相反,如果你没有指定解释器,就像 conda create --name env-00,环境不会出现在列表中。

【讨论】:

我只是要发布相同的答案!在某些情况下,这是唯一正确的答案! VSCode 文档清楚地解释了其中没有 python 模块的 conda 环境不会被 VSCode 列在解释器列表中。因此,例如,如果您刚刚创建了一个空的 conda 虚拟环境,其中没有任何模块,您将不会在 VSCode 中看到它。所以我只是做了conda install --name my_env_name python,我的问题就解决了。有关此命令的更多信息:docs.conda.io/projects/conda/en/latest/user-guide/tasks/…【参考方案11】:

如果 Anaconda 是您的默认 Python 安装,那么只要您安装 Microsoft Python extension,它就可以工作。

无论使用 Python 编辑器还是需要指向特定安装,以下内容都应该可以工作:

在 settings.json 中编辑 python.path 类似

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

Instructions 编辑 settings.json

【讨论】:

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

我发现的最佳选择是将vscode settings 中的python.venvPath 参数设置为您的anaconda envs 文件夹。

"python.venvPath": "/Users/[...]/Anaconda3/envs"

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

还需要为 Select Workspace Interpreter 选项安装 python extension。

注意:使用当前版本的 VSCode,Select Workspace Interpreter 大约需要 10 秒才能出现在我的计算机上。

【讨论】:

Ctlr + Comma for Windows 打开 vscode 设置 :) 谢谢。 在 Windows 上这对我有用:“python.venvPath”:“C:\\Users\\User\\AppData\\Local\\Continuum\\anaconda3”。使用 VSCode 1.19.1 在较新的版本上,命令是Python: Select Interpreter【参考方案13】:

虽然批准的answer 是正确的,但我想展示一些不同的方法(基于此answer)。

如果你从它启动vscode,vscode可以自动选择正确的anaconda环境。只需添加到用户/工作区设置:


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

它适用于 Windows、macOS 和可能的 Unix。进一步阅读 vscode 中的变量替换:here。

【讨论】:

感谢您的回答。在 Linux 上,它是 "python.pythonPath": "/&lt;proper path&gt;/anaconda3/envs/$env:CONDA_DEFAULT_ENV/bin/python" 。另外我必须在更改环境后重新打开 VS Code。 在 Mac/Unix 上获取 pythonpath 的简单方法是运行:conda activate &lt;your env&gt; &amp;&amp; which python【参考方案14】:

很遗憾,这不适用于 macOS。尽管我的 .zshrc 中有 export CONDA_DEFAULT_ENV='$HOME/anaconda3/envs/dev' 和我的 VSCode 首选项中有 "python.pythonPath": "$env.CONDA_DEFAULT_ENV/bin/python", ,但即使我从设置了该变量的命令行启动了 VSCode,内置终端也不使用该环境的 Python。

【讨论】:

【参考方案15】:

如果您的项目需要独立的环境: 使用 --prefix 选项将环境安装到项目文件夹:

conda create --prefix C:\your\workspace\root\awesomeEnv\ python=3

在 VSCode 的 launch.json 配置中,将“pythonPath”设置为:

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

【讨论】:

我不需要单独的环境,但是要在 osx 上使用我的普通 conda env,我需要重定向 pythonPath。 settings.json 似乎可以正确控制 IDE 中的单元测试。不过,为了让调试工作,我还需要在 launch.json 中设置 pythonPath,正如这个答案所说。对我来说是; "python.pythonPath": "/Users/me/miniconda2/envs/py27/bin/python"

以上是关于在 VsCode 中激活 Anaconda 环境的主要内容,如果未能解决你的问题,请参考以下文章

为啥 VSCode 在启动调试器之前不激活 conda?

pycharm使用anaconda虚拟环境

Python + Anaconda + vscode环境重装(2019.4.20)

ubuntu20.04 ffmpeg anaconda3 cuda11.4 cudnn vscode 环境安装

ubuntu20.04 ffmpeg anaconda3 cuda11.4 cudnn vscode 环境安装

ubuntu20.04 ffmpeg anaconda3 cuda11.4 cudnn vscode 环境安装