启动VSCode时自动激活conda环境

3

设置

假设我有一个名为my_project的项目,它使用特定conda环境中的Python解释器,该环境称为my_env。当我设置项目的解释器时,会在my_project.vscode目录中获得以下settings.json文件:

Original Answer: "最初的回答"

{
    "python.pythonPath": "<path to conda>/envs/my_env/bin/python"
}

问题

我希望配置后,每次打开my_project时,VSCode都会自动在终端中激活my_env。但通常情况下,只有anaconda的base环境被激活。要激活my_env,我有不同的手动选项。

  1. conda activate my_env
  2. 按下strg+shift+p并执行create new integrated terminal
  3. 启动调试会话

可能还有更多的方法。

问题

如何避免这种情况,使得每当我打开my_project时,VSCode都会在集成终端中自动激活my_env

进一步信息

  • 操作系统:Linux
  • VSCode版本:1.36
  • Conda版本:4.7.10

最初的回答

您可以通过以下方式自动激活my_env

  1. 安装Python插件
  2. 在项目根目录下创建.env文件,并将以下内容添加到文件中:source activate my_env
  3. 在VSCode的设置中,搜索Terminal › Integrated: Automation Shell - Linux并将其设置为/bin/bash -l -c "source $HOME/.bashrc; source activate my_env"

这样每次打开my_project时,VSCode都会自动激活my_env

4个回答

0

只要在创建conda环境时指定了Python版本并为其命名(请参阅环境文档),VS Code的Python扩展将会识别和支持conda环境。

如果无法按照上述要求创建环境,可以通过使用conda run来解决问题,它会在运行代码时自动处理激活操作。


为什么我需要指定Python版本?默认情况下,它会安装我当前正在使用的环境中的相同Python版本。我的问题不是我无法运行Python文件。我只想要在打开my_project时,在VSCode的终端中激活my_env,这样我就可以直接启动ipython并使用我所需的包来进行my_project开发。 - undefined
@pafi 你需要使用指定的Python版本来创建你的conda环境,这是因为conda环境的工作方式以及我们如何检测它们以进行激活。 - undefined
我不理解这个问题。根据此文档中的第二步骤,它表示使用与我当前默认的Python版本相同的版本。如果我明确指定版本,那会如何改变我的环境? - undefined
@pafi 这是conda的一个技术问题,用户并不直接接触到,但我们在扩展中依赖它来检测conda环境。 - undefined

0
创建一个工作空间文件夹 在文件中添加以下代码:
{
  "folders": [
      {
          "path": "."
      }
  ],
  "settings": {
      "python.condaPath": "/home/pcuser/anaconda3/condabin/conda",
      "python.pythonPath": "/home/pcuser/anaconda3/envs/my_env/bin/python",
      "python.terminal.activateEnvironment": true,
      "python.terminal.activateEnvInCurrentTerminal": true,
      
  }
}
保存配置并关闭vscode。 打开vscode。 它将自动选择conda环境(应该出现在vscode左下角)。 在终端中,也会选择'my_env'。如果vscode在打开终端之前没有选择“Python Selected Interpreter”,则终端中的my_env不会被选中。在vscode选择了my_env后再打开终端。

0
另一种方法是创建激活的快捷方式。例如,在~/.bashrc中执行以下操作
alias a="conda activate my_env"
alias d="conda deactivate"

所以现在你只需要输入'a'来激活,输入'd'来停用。


嗯,看起来这是一个全局配置。如果我要使用它,我更希望这个快捷方式只适用于我正在工作的特定项目。否则,我需要为每个环境创建不同的快捷方式,对吗? - undefined

-1

我在系统中有多个Python项目,每个项目都有虚拟环境,遇到了类似的问题。

由于我根据工作负载切换项目,很难为特定项目激活正确的环境。

因为VSCODE包含settings.py文件,其中存储了用于特定项目的Python路径。但是它没有自动激活。

我按照以下步骤进行操作,与我搜索到的其他方法相比非常快速。

步骤1. 删除当前终端。您将看到下图中的垃圾桶图标。

enter image description here

第二步。现在通过快捷方式启动新的终端。
CTRL + `
您将看到VSCODE自动检测Python路径设置并激活环境。
简单

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