繁体   English   中英

Visual Studio Code 终端不激活 Conda 环境

[英]Visual Studio Code terminal doesn't activate Conda environment

我阅读了这篇关于类似问题的 Stack Overflow 帖子,但那里的建议似乎没有用。 我在我的 Windows 机器上安装了 Visual Studio Code,并添加了 Python 扩展。 然后我将项目的 Python 路径更改为C:\Users\username\.conda\envs\tom\python.exe .vscode/settings.json中有这个:

{
    "python.pythonPath": "C:\\Users\\username\\.conda\\envs\\tom\\python.exe"
}

Visual Studio Code 中的状态栏还显示:

在此处输入图像描述

但是,当我在终端中执行 conda conda activate tom之后执行conda env list时,我得到了 output:

# conda environments:
#
base                  *  C:\ProgramData\Anaconda3
tom                      C:\Users\username\.conda\envs\tom

代替:

# conda environments:
#
base                     C:\ProgramData\Anaconda3
tom                   *  C:\Users\username\.conda\envs\tom

当我尝试python app.py时,也不会导入未安装在 base 中的包。 我应该怎么办?

where python运行的地方,但它不提供任何 output。

还,

import os
import sys
os.path.dirname(sys.executable)

'C:\\Python38'

首先,打开 Anaconda 提示符( How to access Anaconda command prompt in Windows 10 (64-bit) ),然后输入:

conda activate tom

激活您的虚拟环境。

然后要在此活动环境中打开 Visual Studio Code,请键入

code

它应该工作。

  1. 在 Vscode 中按ctrl + `打开终端。
  2. 然后在终端类型内: conda init
  3. 关闭并重新打开终端。
  4. 正常使用 Conda。

这似乎是因为 Anaconda 安装建议不要将 windows PATH 更改为引用 anaconda,因为它可能与其他安装发生冲突,修改我的 PATH 时我没有问题。 似乎 vs 代码(或者很可能是 Python 扩展)本身仍然没有正确激活 anaconda。

  1. 类型:康达初始化
  2. 切换到cmd终端,因为shell终端有问题
  3. 请享用

它在 vscode 中对我有用

在vs代码中激活anaconda虚拟环境

  1. Go 到菜单栏并单击终端。
  2. 类型: conda init
  3. 关闭此终端并打开一个新终端
  4. 在新终端 window 中,输入 conda conda info --envs
    (您的 conda 虚拟环境应该在列表中)
  5. conda activate name_of_venv

很长一段时间我都面临同样的问题,但似乎没有任何效果。 不知何故,VS Code 在通知提示中建议了我以下内容:

我们注意到您正在使用 conda 环境。 如果您在集成终端中遇到此环境问题,我们建议您让 Python 扩展在您的用户设置中将“terminal.integrated.inheritEnv”更改为 false。

yes了它并开始工作。 您也可以在 settings.json 中手动设置,如下所示:

  1. Shift + Command + P打开命令面板。
  2. 键入 settings.json 和 select `首选项:打开设置(JSON)
  3. 在 JSON 文件中,添加键值对"terminal.integrated.inheritEnv": false
  4. 保存 JSON 文件

如果conda init失败,可能不仅仅是搜索路径中缺少 conda 的问题。 在我的情况下,这是因为 PowerShell 没有加载profile.ps1的权限,请参阅The term 'conda' is not Recognized as the name of a cmdlet

在这种情况下,如果您尚未这样做,请将PowerShell 7PowerShell 5并行安装并填充C:\Users\USER\Documents\PowerShell\profile.ps1

#region conda initialize
# !! Contents within this block are managed by 'conda init' !!
(& "C:\Users\USER\anaconda3\Scripts\conda.exe" "shell.powershell" "hook") | Out-String | Invoke-Expression
#endregion

在此处输入图像描述

然后将新的 PowerShell 7 终端添加到 vscode,请参阅如何将 anaconda powershell 添加到 vscode? .

终端菜单:

在此处输入图像描述

每次打开PowerShell 7时,您在 vscode 的状态栏中看到的 conda conda init和所选 Python 解释器环境的激活都会自动运行。

在此处输入图像描述

将终端从 powershell 切换到 cmd 帮助我

我也遇到过类似的问题:在vscode终端可以激活虚拟环境,但是python版本没有切换。 解决办法是在vscode中对select“bash”,一切正常。

默认的PythonPath插件现在不再使用 PythonPath(截至 2021 年)。 相反,您可以使用以下命令添加解释器路径:

  1. 在终端中,运行以下命令以获取环境的路径:
conda activate <name of your env> && which python
  1. 然后设置 VSCode JSON 设置(用户或工作区):
{
    "python.defaultInterpreterPath": "<Path to your env>",
}
  1. 完全重新启动 VSCode 以在终端中查看您的环境,因为 VSCode 有时会缓存终端 window。

(所有这些都假设您的 vscode 中没有其他混乱的设置。如果有,请查看此问题的其他答案)。

我已经尝试了大多数解决方案来解决问题。 然而,那些没有奏效。 按照上面“Sabito锖兎”所说的步骤。 最后,我解决了。

解决方案1:

  1. Ctrl+Shift+P
  2. 类型terminal: select default profile
  3. 选择命令提示符[1]: https://i.stack.imgur.com/qrSmq.png
  4. 打开一个新终端,您可以使用 cmd 来做这样的事情

更改默认终端的另一种方法是(以防您忘记命令):

  1. 在终端面板的右上角,单击 + ↓(启动配置文件)
  2. select 默认配置文件
  3. 通过这种方式选择你想要的,你也可以打开配置终端设置

解决方案2:

  1. 做上面所说的“Sabito锖兎”
  2. Ctrl+Shift+P
  3. 类型Python: Select Interpreter
  4. 在 conda 中选择您需要的环境。 您也可以在底部面板上使用 select。
  5. 不必要的步骤,在 vscode-settings.json 中,确保"python.terminal.activateEnvironment": true,或者不存在,只要使参数为 true。

现在,vscode 可以根据您的选择自动更改终端中的环境,如下所示。

CMD::::::::

当我选择base:conda时,我打开一个新终端。在控制台中,它显示

F:\GitHub\t>E:/Anaconda/Install/Scripts/activate

(base) F:\GitHub\t>conda activate base

(基础)F:\GitHub\t>

当我选择python3.8:conda时。 表明

F:\GitHub\t>E:/Anaconda/Install/Scripts/activate

(base) F:\GitHub\t>conda activate python3.8

(python3.8) F:\GitHub\t>

PowerShell:::::::

当我选择python3.8:conda时。 表明

(base) PS F:\GitHub\t> conda activate python3.8

(python3.8) PS F:\GitHub\t>

当我选择base:conda时,它显示

(base) PS F:\GitHub\t> conda activate base

(基础)PS F:\GitHub\t>

顺便说一句,输入这个小 window 太难了。

似乎有很多不同的原因导致 conda 没有被自动激活。 我在 wsl2 中使用 python 和 bash 作为我的 shell 并将以下两个设置设置为 true 为我修复它: 在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM