Visual Studio代码终端没有激活Conda环境

Visual Studio Code terminal doesn't activate Conda environment

我在 上读到过类似的问题,但那里的建议似乎没有用。我在我的 Windows 机器上安装了 Visual Studio 代码并添加了 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代码中的状态栏还显示:

但是当我在终端中执行 conda env list 时甚至在执行 conda activate tom 之后我得到输出:

# 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 运行,但不提供任何输出。

此外,

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

它应该可以工作。

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

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

在vs code中激活anaconda虚拟环境

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

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

We noticed you're using a conda environment. If you are experiencing issues with this environment in the integrated terminal, we recommend that you let the Python extension change "terminal.integrated.inheritEnv" to false in your user settings.

我点击了 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 的权限,请参阅 .

在那种情况下,如果您还没有这样做,请将 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,参见

终端菜单:

并且 conda init 以及您在 vscode 的状态栏中看到的所选 Python 解释器环境的激活将在您打开 [=] 时自动 运行 13=].

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

在VSCode终端可以激活虚拟环境,但是Python版本没有切换

解决方法是select“bash”在VSCode,一切正常

PythonPath 现在不再被默认 Python 插件使用(自 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. 选择命令提示符

  4. 打开一个新的终端,你可以使用cmd来做这些事情。

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

  1. 在终端面板的右上角,单击 + (启动配置文件)
  2. Select 默认配置文件
  3. 选择你想要的 这样,你也可以打开configure terminal settings

解决方案 2:

  1. 做什么Sabito 錆兎

  2. ctrl+shift+p

  3. 类型Python: Select Interpreter

  4. 选择你需要的conda环境。 您也可以在底部面板上 select。

  5. 不必要的步骤:在 vscode-settings.json 中,确保如果此行存在则参数为真:

    "python.terminal.activateEnvironment": true,
    

    现在,vscode 将根据您的设置自动更改终端中的环境 选择,像这样:

    命令

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

    F:\GitHub\t>E:/Anaconda/Install/Scripts/activate 
    (base) F:\GitHub\t>conda activate base 
    (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  
    (base) PS  F:\GitHub\t>
    
  1. 类型:conda init
  2. 切换到cmd终端,因为shell终端有问题
  3. 享受

我在 vscode

工作