簡體   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