![](/img/trans.png)
[英]How can I make Python3's venv use the same version of pip3 as my system's one?
[英]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}/env
或fake/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)
提示,但實際行為是它在發出命令(例如python3
或pip3
時指向錯誤的 python 版本。
任何建議都會很棒!
我遇到了同樣的問題,嘗試了各種方法,但這最終奏效了。
1. python -m venv myvenv
2. 打開命令面板並選擇解釋器 myenv
3. CTRL + SHIFT + ` 在 myenv 中打開終端
然后我能夠看到預期的... (myenv) C:\\Git\\pyPilot>
我對在 VSCode 中使用 Python 非常陌生,正在從事一個大學項目。 我在集成終端中的 Python 版本中遇到了同樣的問題。 我不確定它以后是否會影響任何東西或破壞其他任何東西,但現在......我做了以下工作,兩者都工作在 Python 的版本從 2(系統一)更改為 3(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.