[Python] 引用路徑與多版本共存教學

更新 發佈閱讀 5 分鐘

許多開發者在 Windows 上安裝了多個 Python 版本(例如 3.8、3.11、WinPython 3.12 等),

卻常常遇到「到底現在執行的是哪個 Python?」的困惑。

甚至有時候明明沒有把某個版本加入環境變數(PATH),

但在該資料夾中執行 python 時,卻發現系統竟然使用了那個版本。

這篇文章將完整說明 Windows 如何尋找 Python 的執行檔

並教你如何控制與切換版本,避免套件或環境衝突。


🧩 一、Windows 的執行檔搜尋順序(PATH Lookup Order)

當你在命令提示字元(CMD)輸入:

python

Windows 並不是「神奇地知道」哪個 Python 要執行,

它會按照一定順序依次搜尋:

搜尋順序說明

1️⃣目前所在的資料夾(Current Working Directory)

2️⃣系統環境變數 PATH 中登錄的每個資料夾(從前往後找)

3️⃣一些特殊系統目錄,如 C:\Windows\System32、WindowsApps 等

第一個被找到的 python.exe 就會被執行


🧠 二、實際案例:為什麼沒加 PATH 還是能執行?

假設你的環境如下:

C:\Users\crab1\Downloads\WPy64-312101\python\python.exe   ← WinPython 3.12
C:\Users\crab1\AppData\Local\Programs\Python\Python311\python.exe
C:\Users\crab1\AppData\Local\Programs\Python\Python38\python.exe

然後你打開 CMD,進入 WinPython 的資料夾:

cd C:\Users\crab1\Downloads\WPy64-312101\python

這時候輸入:

python --version

結果會顯示:

Python 3.12.10

即使你根本沒有把 WinPython 加入環境變數,它仍然被優先使用。

原因就是——Windows 會優先搜尋「目前所在的資料夾」


🔍 三、如何確認目前執行的是哪個 Python?

非常簡單,輸入以下指令:

where python

輸出會顯示所有找到的 Python 路徑,依照優先順序排列,例如:

C:\Users\crab1\Downloads\WPy64-312101\python\python.exe
C:\Users\crab1\AppData\Local\Programs\Python\Python311\python.exe
C:\Users\crab1\AppData\Local\Programs\Python\Python38\python.exe
C:\Users\crab1\AppData\Local\Microsoft\WindowsApps\python.exe

第一行就是目前被執行的版本。

你也可以用 Python 自己來確認:

python -c "import sys; print(sys.executable)"

輸出會顯示:

C:\Users\crab1\Downloads\WPy64-312101\python\python.exe

⚙️ 四、明確指定要使用的版本

如果你同時安裝了多個版本,

可以直接用「完整路徑」執行,避免混淆:

# 執行 Python 3.8
C:\Users\crab1\AppData\Local\Programs\Python\Python38\python.exe

# 執行 Python 3.11
C:\Users\crab1\AppData\Local\Programs\Python\Python311\python.exe

# 執行 WinPython 3.12
C:\Users\crab1\Downloads\WPy64-312101\python\python.exe

同理,安裝套件時也可以針對特定版本:

C:\Users\crab1\Downloads\WPy64-312101\python\python.exe -m pip install numpy

這樣就不會誤裝到系統的 Python 3.8 或 3.11 之中。

留言
avatar-img
留言分享你的想法!
avatar-img
螃蟹_crab的沙龍
157會員
309內容數
本業是影像辨識軟體開發,閒暇時間進修AI相關內容,將學習到的內容寫成文章分享。 興趣是攝影,踏青,探索未知領域。 人生就是不斷的挑戰及自我認清,希望老了躺在床上不會後悔自己什麼都沒做。
螃蟹_crab的沙龍的其他內容
2025/10/30
💻 在同一台電腦上讓程式互通:TCP/IP Socket 原理與實作 🧠 一、為什麼同一台電腦也能用 TCP/IP 通訊? 很多人以為 TCP/IP 只用在「跨網路」的通訊,其實不然。 TCP/IP 是一種協定(Protocol),而非實體連線。 Windows、macOS、Linux
Thumbnail
2025/10/30
💻 在同一台電腦上讓程式互通:TCP/IP Socket 原理與實作 🧠 一、為什麼同一台電腦也能用 TCP/IP 通訊? 很多人以為 TCP/IP 只用在「跨網路」的通訊,其實不然。 TCP/IP 是一種協定(Protocol),而非實體連線。 Windows、macOS、Linux
Thumbnail
2025/09/26
測試Python 3.12.10版本與目前使用的3.87版本 差異 參考以下文章 在 Python 3.8.6 vs 3.12.10 上跑同一組程式,比較不同類型任務的效能差異。 成果彙整 程式碼參考如下 🧮 數值運算密集 (CPU bound) import time def
Thumbnail
2025/09/26
測試Python 3.12.10版本與目前使用的3.87版本 差異 參考以下文章 在 Python 3.8.6 vs 3.12.10 上跑同一組程式,比較不同類型任務的效能差異。 成果彙整 程式碼參考如下 🧮 數值運算密集 (CPU bound) import time def
Thumbnail
2025/09/04
1. 什麼是物件的記憶體位置? 在 Python 中,每個物件在記憶體中都有一個唯一的位置,這個位置可以用 id() 函式查詢。 這個 id 在 CPython(最常見的 Python 實作)中,實際上就是物件的記憶體地址。 a = [1, 2, 3] print(id(a))
2025/09/04
1. 什麼是物件的記憶體位置? 在 Python 中,每個物件在記憶體中都有一個唯一的位置,這個位置可以用 id() 函式查詢。 這個 id 在 CPython(最常見的 Python 實作)中,實際上就是物件的記憶體地址。 a = [1, 2, 3] print(id(a))
看更多
你可能也想看
Thumbnail
不是每個人都適合自己操盤,懂得利用「專業」,才是績效拉開差距的開始
Thumbnail
不是每個人都適合自己操盤,懂得利用「專業」,才是績效拉開差距的開始
Thumbnail
生產力爆發帶來的過剩,會讓過去的「還可以啦」成為最低標準。市場需求對於出類拔萃、獨一無二的需求還是存在,但是對於那些價格高度敏感,或是只需要穩定、便宜、還可以啦的需求端來說,AI 正在迅速取代這部分的供給,中間長尾的服務提供者被 AI 替換。
Thumbnail
生產力爆發帶來的過剩,會讓過去的「還可以啦」成為最低標準。市場需求對於出類拔萃、獨一無二的需求還是存在,但是對於那些價格高度敏感,或是只需要穩定、便宜、還可以啦的需求端來說,AI 正在迅速取代這部分的供給,中間長尾的服務提供者被 AI 替換。
Thumbnail
今年在 Google I/O 有幸看到 Hassabis 本人幾秒,DeepMind 和共同創辦人 Demis Hassabis 的這個題目,也一直都在待寫清單中。 前陣子,在介紹 Founders Fund 時,發現 Demis Hassabis 當初在說服 Peter Thiel 投資 Dee
Thumbnail
今年在 Google I/O 有幸看到 Hassabis 本人幾秒,DeepMind 和共同創辦人 Demis Hassabis 的這個題目,也一直都在待寫清單中。 前陣子,在介紹 Founders Fund 時,發現 Demis Hassabis 當初在說服 Peter Thiel 投資 Dee
Thumbnail
年末總有一種莫名的魔力,讓人特別容易感到孤單。 聖誕節、跨年、緊接著農曆新年……滑開社群,不是甜蜜放閃,就是一群人早早訂好跨年行程。 明明日子算得上順遂,工作穩定無憂,生活也按部就班地往前走着,可總在萬籟俱寂的夜晚,獨自對着空蕩的房間時,心底會悄悄冒出一個念頭:今年,是不是可以不一樣?不再獨自抵
Thumbnail
年末總有一種莫名的魔力,讓人特別容易感到孤單。 聖誕節、跨年、緊接著農曆新年……滑開社群,不是甜蜜放閃,就是一群人早早訂好跨年行程。 明明日子算得上順遂,工作穩定無憂,生活也按部就班地往前走着,可總在萬籟俱寂的夜晚,獨自對着空蕩的房間時,心底會悄悄冒出一個念頭:今年,是不是可以不一樣?不再獨自抵
Thumbnail
這篇指南提供逐步教學,引導您在Visual Studio Code中設定Python開發環境,包括安裝Python和VS Code、安裝Python擴充套件、設定Python直譯器以及撰寫和執行第一個Python程式,讓Python新手也能輕鬆上手。
Thumbnail
這篇指南提供逐步教學,引導您在Visual Studio Code中設定Python開發環境,包括安裝Python和VS Code、安裝Python擴充套件、設定Python直譯器以及撰寫和執行第一個Python程式,讓Python新手也能輕鬆上手。
Thumbnail
教大家如何使用 pip 備份 python 虛擬環境,並移植到其他電腦之中,詳細圖文解說
Thumbnail
教大家如何使用 pip 備份 python 虛擬環境,並移植到其他電腦之中,詳細圖文解說
Thumbnail
建置 vscode + python 開發環境的完整流程,詳細且附圖
Thumbnail
建置 vscode + python 開發環境的完整流程,詳細且附圖
Thumbnail
創建 python 虛擬環境 (不需要安裝 Anaconda)
Thumbnail
創建 python 虛擬環境 (不需要安裝 Anaconda)
Thumbnail
1. 詳細的 python 安裝流程(不需要 anaconda) 2. 透過「命令提示字元」啟動 python 的方法
Thumbnail
1. 詳細的 python 安裝流程(不需要 anaconda) 2. 透過「命令提示字元」啟動 python 的方法
Thumbnail
在Microsoft store 搜尋 kail linux 並安裝(這裡假設你已經先安裝WSL) 之後執行kail linux 終端機 依序輸入以下指令: 上面主要是做一些更新(update and upgrade),然後安裝python3, python3-venv(虛擬環境)之後建立一個名為b
Thumbnail
在Microsoft store 搜尋 kail linux 並安裝(這裡假設你已經先安裝WSL) 之後執行kail linux 終端機 依序輸入以下指令: 上面主要是做一些更新(update and upgrade),然後安裝python3, python3-venv(虛擬環境)之後建立一個名為b
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News