簡體   English   中英

如何讓我的 vscode 終端將我的 venv 用於 python 而不是系統版本?

[英]How can I get my vscode terminal to use my venv for python rather than the system version?

我已經使用python -m venv venv設置了一個 venv,它被 vscode 識別為有效的解釋器,並使用代碼運行器 vscode 擴展按預期運行我的代碼。 但是 vscode 集成的 bash 終端只使用系統版本的 python,即使在運行source /Fake/path/to/env/bin/activate 終端在輸入提示上顯示(env)但通過os.path.dirname(sys.executable)檢查版本表明 python 的版本是我系統路徑中的版本,而不是 venv 中的版本。 所以我正在安裝的軟件包被安裝到系統 python 而不是 venv。

這是 vscode 中終端的問題,而不是 venv 本身的問題,因為當我在本機終端(非集成)中執行上述步驟時,我得到了 venv python 的正確路徑。

我試過將 vscode 中的python.venvPath變量設置為${workspaceFolder}/envfake/path/to/env但都不起作用。 我認為可以在terminal.integrated.shellArgs.macos設置下設置 bash shell 參數,但無法弄清楚如何讓它在啟動時運行正確的激活腳本。作為參考,我當前的 vscode 設置如下:

"settings": {
    "code-runner.fileDirectoryAsCwd": true;
    "code-runner.executorMap": {
        "python": "env/bin/python3",
    },
    "python.venvPath": "${workspaceFolder}/env",
    "terminal.integrated.cwd": "${workspaceFolder}",
    },
}

基本上,我希望集成終端激活 venv activate bash 腳本並臨時替換路徑以將我的 venv python 作為默認值。 然后我就可以使用 pip3 將相關包安裝到 venv 而不是系統 python。 但是,盡管在條目之前顯示(env)提示,但實際行為是它在發出命令(例如python3pip3時指向錯誤的 python 版本。

任何建議都會很棒!

我遇到了同樣的問題,嘗試了各種方法,但這最終奏效了。
1. python -m venv myvenv
2. 打開命令面板並選擇解釋器 myenv
3. CTRL + SHIFT + ` 在 myenv 中打開終端
然后我能夠看到預期的... (myenv) C:\\Git\\pyPilot>

您可以嘗試設置默認解釋器。 在 VSCode 屏幕的左下角,您可以單擊解釋器名稱並選擇您想要的名稱。 見下圖。 紅色橢圓指示單擊位置。

在此處輸入圖片說明

單擊指示的空間后,將打開一個菜單,您可以在其中選擇 Python 解釋器。 見下圖。

在此處輸入圖片說明

我對在 VSCode 中使用 Python 非常陌生,正在從事一個大學項目。 我在集成終端中的 Python 版本中遇到了同樣的問題。 我不確定它以后是否會影響任何東西或破壞其他任何東西,但現在......我做了以下工作,兩者都工作在 Python 的版本從 2(系統一)更改為 3(Anaconda 安裝)。

第二次嘗試:更改 PATH 以首先使用 Anaconda。 需要清理......但基本工作。

(base) MacBook-Pro-2:env myuserdir$ echo $PATH

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/myuserdir/env/bin:/anaconda3/bin:/anaconda3/condabin

(base) MacBook-Pro-2:env myuserdir$ python --version

Python 2.7.10

(base) MacBook-Pro-2:env myuserdir$ PATH="/anaconda3/bin:$PATH"

(base) MacBook-Pro-2:env myuserdir$ echo $PATH

/anaconda3/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/myuserdir/env/bin:/anaconda3/bin:/anaconda3/condabin

(base) MacBook-Pro-2:env myuserdir$ python --version

Python 3.7.1

第一次嘗試:

source /env/bin/activate within the VSCode Terminal and that changed the Python version.

Open a new integrated Terminal in VSCode: Terminal\New Terminal:

(base) MacBook-Pro-2:env myuserdir$ source /anaconda3/bin/activate

(base) MacBook-Pro-2:env myuserdir$ conda activate base

(base) MacBook-Pro-2:env myuserdir$ python --version
Python 2.7.10

(base) MacBook-Pro-2:env myuserdir$ which python

/usr/bin/python

(base) MacBook-Pro-2:env myuserdir$ pwd

/Users/myuserdir/env/env

(base) MacBook-Pro-2:env myuserdir$ cd ..

(base) MacBook-Pro-2:env myuserdir$ ls

bin             env             include         lib             pyvenv.cfg

(base) MacBook-Pro-2:env myuserdir$ source bin/activate

(env) (base)MacBook-Pro-2:env myuserdir$ which python

/Users/myuserdir/env/bin/python

(env) (base) MacBook-Pro-2:env myuserdir$ python --version

Python 3.7.1

這是 2021 年的問題,但如果您(再次)選擇 VS Code 左下角的解釋器,然后打開一個新終端 (Ctrl+Shift+`),您將在終端提示中看到venv名稱。

關閉和打開 VS Code 后, venv仍然處於活動狀態。 也許它因某種原因被停用。

終端使用Activate.ps1 ,而不是activate.bat

當前用戶必須能夠執行 PoserShell 腳本。

cd ./myenv/腳本/

啟用

為我工作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM