※ 引述 《surimodo (好吃棉花糖)》 之銘言:
:
: 我 windows cmd
: 可以正常使用 python 跟 pip
:
: 但是在 vs code 裡面的cmd或ps
:
: python 查無指令
: pip 是指向舊的 python
:
: extenstion 的 python interpreter 有正常設定
: 如果是點執行可以正常執行
:
:
: 要怎麼修vs code 裡的執行路徑
:
這是一個典型的 環境變數(PATH)同步問題。VS Code 的整合終端機(Terminal)有時候
會「記住」舊的路徑,或者因為載入順序問題,沒能抓到你在系統中剛改好的 Python 設定
。
既然你在一般 CMD 是正常的,代表系統環境變數沒問題,問題出在 VS Code 的快取或終端
機設定。請依照以下步驟排查:
1. 最簡單的暴力法:重啟 VS Code
VS Code 的終端機在啟動後就不會主動更新環境變數。
* 徹底關閉所有 VS Code 視窗。
* 重新開啟 VS Code,然後開一個新的終端機測試。
2. 檢查終端機的「環境繼承」設定
VS Code 有一個設定可能會阻止它讀取最新的系統路徑。
* 按 Ctrl + , 開啟設定。
* 搜尋 terminal.integrated.inheritEnv。
* 確保這個選項是 勾選 (Checked) 的。
3. 清除 VS Code 終端機快取
有時候 VS Code 會嘗試「恢復」之前的工作階段,導致抓到舊的路徑:
* 在 VS Code 終端機面板,點擊垃圾桶圖示 "Kill Terminal" 關閉所有啟動中的終端機
。
* 重新按 Ctrl + ~ 開啟一個新的終端機,這會強迫它重新讀取系統變數。
4. 解決 PowerShell 的執行權限(針對 pip 問題)
如果你在 PowerShell 裡 pip 指向舊的,但在 CMD 是對的,通常是因為 PowerShell 有自
己的 Profile 或路徑優先權。
* 在 VS Code 終端機切換嘗試使用 Command Prompt (CMD) 而不是 PowerShell。
* 點擊終端機右上角的「+」號旁的下拉箭頭 -> Select Default Profile -> 選擇 Comma
nd Prompt。
5. 終極解決方案:手動指定終端機路徑
如果以上都沒用,你可以強迫 VS Code 在啟動終端機時注入正確的路徑:
* 開啟 settings.json (按 F1 輸入 Open User Settings (JSON))。
* 檢查是否有 terminal.integrated.env.windows 這一項。
* 如果路徑亂掉了,你可以手動加入你的 Python 路徑(雖然不建議長期這樣做,但這最
有效):
<!-- end list -->
"terminal.integrated.env.windows": {
"PATH": "C:\\你的Python安裝路徑;C:\\你的Python安裝路徑\\Scripts;${env:PATH}"
}
為什麼「點擊執行」是正常的?
這是因為 VS Code 的 Python Extension 非常聰明,當你點擊右上角的「播放」按鈕時,
它是直接呼叫 python.exe 的完整絕對路徑(例如 C:\Python312\python.exe script.py)
,所以它不需要依賴環境變數。但當你在終端機手打 python 時,電腦就只能靠 PATH 去大
海撈針了。
建議下一步:
你可以先在 VS Code 終端機輸入 where python (CMD) 或 Get-Command python (PS),看
看它目前到底是指向哪裡嗎?這能幫我們精確鎖定是哪個「幽靈路徑」在搗亂。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.228.129.84 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1771612368.A.94C.html