Python版本怎麼看:從初學者的疑問到進階者的實用指南
「欸,我的Python到底跑的是哪個版本啊?」相信許多剛踏入Python程式設計領域的朋友,都曾經在開發的過程中,腦中浮現過這樣的疑問。別擔心,這絕對是個再常見不過的問題了!就像剛學開車,要先弄清楚儀表板上各種燈號代表的意思一樣,了解你正在使用的Python版本,可是掌握開發環境、確保程式碼相容性的第一步呢!今天,就讓我們一起來徹底搞懂「Python版本怎麼看」,從最基礎的命令,到更深入的應用,為你的Python學習之路打下紮實的基礎。
Table of Contents
為何Python版本如此重要?
為什麼我們需要關心Python的版本呢?這背後其實藏著不少學問。簡單來說,不同的Python版本之間,可能存在著語法上的差異、內建函式庫的增減、效能的優化,甚至是對新功能的支援。舉個例子,Python 2和Python 3在語法上就有不少關鍵的區別,像是 `print` 語句的寫法、字串的編碼處理方式等等。如果你的程式碼是為Python 3編寫的,卻在Python 2環境下運行,那很可能會出現各種預期外的錯誤,讓你一頭霧水。
此外,許多第三方套件(Libraries/Modules)在開發時,也會指定支援特定的Python版本範圍。如果你使用的Python版本與套件所需的版本不符,那麼在安裝或使用該套件時,就可能面臨相容性問題,導致專案無法順利進行。因此,清楚知道自己正在使用的Python版本,就能夠幫助我們:
- 確保程式碼的穩定運行: 避免因版本不符而產生的語法錯誤或行為差異。
- 順利安裝和使用套件: 選擇與開發環境相匹配的第三方工具。
- 理解新舊語法特性: 掌握不同版本引入的新功能或改進。
- 協同開發的默契: 與團隊成員確保開發環境的一致性,減少溝通成本。
總而言之,對Python版本的了解,是程式設計師必備的基本功,它能讓你少走許多冤枉路,更有效率地完成開發任務。
查看Python版本的首要步驟:終端機或命令提示字元
對於絕大多數使用者來說,查看Python版本的最直接、最快速的方式,就是透過你電腦的終端機(Terminal,在macOS和Linux上)或命令提示字元(Command Prompt/PowerShell,在Windows上)。這就像是啟動你與電腦溝通的秘密通道一樣,只需要幾個簡單的指令,就能獲得你想要的資訊。
在Windows上查看Python版本
如果你是Windows使用者,請跟著我一步一步來:
- 開啟命令提示字元或PowerShell: 你可以透過搜尋列輸入「cmd」或「PowerShell」,然後點選開啟。
- 輸入指令: 在開啟的黑(或藍)色視窗中,請輸入以下任一指令,然後按下 Enter 鍵:
python --versionpython -V(請注意,這個V是大寫的)
如果你的電腦上已經安裝了Python,並且它的路徑已經正確地被加入到系統的環境變數中,你應該會看到類似這樣的輸出:
Python 3.9.7
這裡顯示的「3.9.7」就是你目前系統預設使用的Python版本。如果輸入指令後出現「’python’ 不是內部或外部命令,也不是可執行程式或批次檔。」這樣的錯誤訊息,那表示你的Python可能沒有正確安裝,或者它的安裝路徑沒有被添加到系統環境變數中。這時候,你可能需要重新檢查Python的安裝步驟,或者手動設定環境變數。
在macOS或Linux上查看Python版本
對於macOS和Linux的使用者,流程非常相似:
- 開啟終端機: 你可以透過 Spotlight 搜尋 (Command + 空白鍵) 輸入「Terminal」,或是到「應用程式」>「工具程式」中找到它。在Linux上,通常可以透過搜尋或快捷鍵 (如 Ctrl + Alt + T) 來開啟。
- 輸入指令: 在終端機視窗中,輸入以下任一指令,然後按下 Enter 鍵:
python3 --versionpython3 -V(同樣是,V是大寫的)
為什麼是 `python3` 而不是 `python` 呢? 這是因為在許多macOS和Linux系統中,預設的 `python` 指令可能指向的是系統內建的Python 2版本(儘管現在越來越少見了)。為了明確指定我們要查看的是Python 3的版本,使用 `python3` 指令會更為精確。你可能會看到類似這樣的輸出:
Python 3.10.4
如果你的系統同時安裝了Python 2和Python 3,你也可以嘗試輸入 `python –version` 來查看 `python` 指令所指向的版本,但強烈建議你之後的開發工作,盡量使用 `python3` 來確保你使用的是較新、功能更豐富的版本。
更細緻的Python版本資訊:深入了解
有時候,光是知道主版本號(例如 3.9)還不夠。我們可能還需要知道更詳細的版本資訊,像是次版本號、微版本號,甚至是編譯資訊。這對於除錯或確認特定功能是否可用時,可是非常有幫助的!
使用Python直譯器互動式環境
最能取得詳細版本資訊的方法,就是直接啟動Python的互動式環境。這是一個讓你直接在終端機裡輸入Python程式碼並立即看到結果的環境。
- 啟動Python直譯器: 在你的終端機或命令提示字元中,輸入 `python` 或 `python3` (取決於你的系統設定),然後按下 Enter。
一旦進入了互動式環境,你會看到類似這樣的提示符號:
Python 3.9.7 (default, Sep 16 2021, 13:09:58) [GCC 7.5.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>>
從這個輸出中,我們可以獲得非常豐富的資訊:
- 版本號:
3.9.7,這是主要的版本資訊。 - 編譯資訊:
(default, Sep 16 2021, 13:09:58)顯示了這次Python建置的預設設定以及建置時間。 - 編譯器:
[GCC 7.5.0]告訴我們是用哪個編譯器(在這裡是GCC)和它的版本來編譯這個Python直譯器的。 - 作業系統:
on linux指明了運行Python的作業系統。
在互動式環境中,你還可以透過輸入以下指令來取得更詳細的資訊:
import sysprint(sys.version)
這會再次印出詳細的版本字串。而如果你想知道Python所支援的平台相關資訊,可以嘗試:
print(sys.version_info)
這個指令會以一個具名元組 (named tuple) 的形式回傳版本資訊,例如:
sys.version_info(major=3, minor=9, micro=7, releaselevel='final', serial=0)
這對於程式碼中需要根據不同版本進行條件判斷時,是非常實用的。例如,你可以這樣寫:
import sys
if sys.version_info.major < 3 or (sys.version_info.major == 3 and sys.version_info.minor < 8):
print("警告:您的Python版本可能較舊,建議升級。")
else:
print("您的Python版本符合要求。")
在程式碼中動態判斷Python版本
有時候,我們可能需要在程式碼執行時,動態地判斷目前使用的Python版本,以便根據不同的版本執行不同的邏輯。這在開發需要跨版本支援的套件時尤其重要。
前面我們已經提到了使用 `sys` 模組。這是一個非常強大且方便的模組,提供了許多與Python直譯器本身相關的資訊和功能。
使用 `sys.version_info` 進行精確判斷
如前所述,`sys.version_info` 會回傳一個包含 `major`、`minor`、`micro` 等屬性的具名元組。這使得我們可以非常精確地判斷版本:
import sys
# 判斷主版本號是否為 3
if sys.version_info.major == 3:
print("您正在使用 Python 3。")
# 判斷主版本號是否大於等於 3,且次版本號大於等於 10
if sys.version_info >= (3, 10):
print("您的 Python 版本是 3.10 或更高。")
else:
print("您的 Python 版本低於 3.10。")
# 判斷是否為特定的微版本
if sys.version_info == (3, 9, 7):
print("您使用的正是 Python 3.9.7!")
這種方式比直接比較 `sys.version` 字串來得更可靠,因為字串的格式在不同版本或建置之間可能會有細微差異,而 `sys.version_info` 提供的結構化資訊則更加穩定。
程式碼範例:判斷並提示
假設我們要開發一個功能,它在Python 3.8之後才引入,那麼我們可以在程式碼的開頭加入這樣的檢查:
import sys
import warnings
# 檢查 Python 版本
if sys.version_info < (3, 8):
# 發出警告,但允許程式繼續執行
warnings.warn("此程式碼建議使用 Python 3.8 或更高版本。部分功能可能無法正常運作。", UserWarning)
# 如果你希望程式在版本不符時直接停止,可以使用 sys.exit()
# sys.exit("錯誤:Python 版本過低,請升級至 3.8 或更高版本。")
print("正在載入核心功能...")
# ... 其他程式碼 ...
透過 `warnings.warn()`,我們可以告知使用者潛在的版本問題,同時又不強行終止程式的運行,提供了更彈性的開發和使用體驗。
透過 IDE 或程式碼編輯器查看
對於大部分的程式開發者來說,我們不太可能只在終端機裡寫程式。我們通常會使用整合開發環境 (IDE) 或程式碼編輯器,例如 Visual Studio Code (VS Code)、PyCharm、Sublime Text 等。這些工具通常也會提供方便的方式來顯示或設定我們正在使用的Python直譯器版本。
Visual Studio Code (VS Code)
VS Code 是目前非常流行的程式碼編輯器,它對Python有著極佳的支援。如果你已經安裝了Python擴充功能:
- 查看狀態列: 在VS Code的視窗底部,通常會顯示你目前專案正在使用的Python直譯器。你會看到類似 `Python 3.9.7 ('myenv': venv)` 的字樣。
- 切換直譯器: 如果你點擊該區域,或者透過命令面板 (Ctrl+Shift+P 或 Cmd+Shift+P) 輸入「Python: Select Interpreter」,就可以看到你電腦上所有可用的Python直譯器列表,包含不同版本和虛擬環境 (virtual environments)。你可以輕鬆地選擇一個新的版本來作為當前專案的預設直譯器。
PyCharm
PyCharm 作為一款專業的Python IDE,提供了更為全面的專案配置選項。
- 專案設定: 前往「File」>「Settings」(Windows/Linux)或「PyCharm」>「Preferences」(macOS)。
- 尋找專案直譯器: 在設定視窗中,找到「Project: [你的專案名稱]」>「Python Interpreter」。
- 查看與設定: 在這裡,你會看到目前專案配置的Python直譯器。你可以從下拉選單中選擇已安裝的其他Python版本,或者點擊齒輪圖示來新增、編輯或移除直譯器。
這些IDE和編輯器的好處是,它們通常會自動掃描你的系統,列出所有可用的Python版本,甚至能讓你方便地管理虛擬環境,這對於隔離不同專案的依賴關係至關重要。
虛擬環境 (Virtual Environments) 中的Python版本
前面我們提到了「虛擬環境 (virtual environments)」,這絕對是現代Python開發不可或缺的一環!為什麼呢?因為每個專案可能有不同的依賴套件,甚至需要不同的Python版本。虛擬環境就能夠為每個專案建立一個獨立、隔離的Python執行環境。
當你進入一個虛擬環境時,該環境預設會使用你建立它時指定的Python版本。因此,在虛擬環境中查看Python版本,和在全域環境中查看的方式是一樣的,只是確保你是在該虛擬環境啟動的終端機裡執行指令。
常見的虛擬環境管理工具
- venv (Python 3.3+ 內建):
# 建立虛擬環境 (使用預設Python版本) python -m venv my_project_env # 啟動虛擬環境 # Windows: my_project_env\Scripts\activate # macOS/Linux: source my_project_env/bin/activate # 啟動後,在終端機輸入: python --version - conda (Anaconda/Miniconda):
# 建立一個指定Python版本的conda環境 conda create -n my_conda_env python=3.9 # 啟用conda環境 conda activate my_conda_env # 啟用後,在終端機輸入: python --version
當你啟動了一個虛擬環境後,你再次輸入 `python --version` 或 `python3 --version` 時,你會看到的就是這個虛擬環境所使用的Python版本。這非常重要,因為即使你的系統預設安裝了Python 3.10,但如果你的虛擬環境是用Python 3.7建立的,那麼在這個環境下運行的程式碼,實際上就是使用Python 3.7。
我的經驗談: 很多時候,當程式碼在某個環境下跑得好好的,換到另一個環境就出錯,原因往往就是Python版本或套件版本的差異。養成使用虛擬環境的好習慣,並且在每個專案開始前,確認虛擬環境的Python版本,絕對能省去你大量的除錯時間。
常見問題與詳細解答
關於「Python版本怎麼看」這個主題,還有一些朋友可能會遇到的疑難雜症,我們來一一釐清:
Q1: 我在終端機輸入 `python --version`,出現「'python' 不是內部或外部命令」,這是什麼意思?
解答: 這個錯誤訊息意味著你的作業系統找不到名為 `python` 的可執行檔。這通常有兩種主要原因:
- Python 未正確安裝: 你的電腦上可能根本沒有安裝Python,或者安裝過程沒有完成。你可以嘗試重新從Python官方網站 (python.org) 下載最新的穩定版本並重新安裝。
- 未加入系統環境變數 (PATH): 即使Python已經安裝,但如果它的安裝路徑沒有被加入到作業系統的「環境變數」中的 PATH 裡,系統就無法在任何地方找到它。在Windows安裝Python時,通常會有一個「Add Python to PATH」的選項,請務必勾選。如果已經安裝了但出現這個錯誤,可能需要手動編輯系統環境變數,將Python的安裝目錄(通常包含 `python.exe` 的資料夾)加入到 PATH 變數中。在macOS/Linux上,通常安裝時就會自動處理,但如果遇到問題,也可能需要檢查相關的設定檔(如 `.bashrc`、`.zshrc` 等)。
進一步說明: PATH 變數就像是一個搜尋清單,當你輸入一個指令時,作業系統就會依照 PATH 中的順序,到各個指定的目錄下去尋找對應的可執行檔。如果找不到,就會出現這個錯誤。
Q2: 我在macOS上輸入 `python --version` 顯示的是 Python 2.7,但我想要看 Python 3 的版本,該怎麼辦?
解答: 這正是我們前面提到的,macOS 和一些 Linux 發行版可能預設將 `python` 指令指向 Python 2。為了明確指定 Python 3,你應該使用 `python3` 指令。請嘗試輸入:
python3 --versionpython3 -V
這通常會正確地顯示你安裝的 Python 3 版本。如果你希望 `python` 指令也能指向 Python 3,則需要更進一步的系統設定,例如修改 alias 或 symlink,但這涉及到系統底層的修改,對於初學者來說,直接使用 `python3` 是最安全、最推薦的做法。
Q3: 我電腦上安裝了好幾個版本的Python (例如 3.7, 3.9, 3.10),如何確定我目前正在使用的專案是哪個版本?
解答: 這時候,虛擬環境 (virtual environments) 的重要性就顯現出來了!
- 檢查虛擬環境: 如果你的專案使用了虛擬環境(例如,你的終端機提示符前面有 `(my_env)` 這樣的標記),請確保該虛擬環境已經被正確啟動。一旦啟動,在該終端機中輸入 `python --version` 即可看到該虛擬環境使用的版本。
- 檢查 IDE 設定: 如果你使用 VS Code, PyCharm 等 IDE,請在 IDE 的專案設定中查看「Python Interpreter」的選項。IDE 通常會列出所有偵測到的 Python 版本和虛擬環境,你可以清楚地看到哪個是被選為該專案的。
- 使用 `which python` (macOS/Linux) 或 `where python` (Windows): 在終端機(確保虛擬環境已啟動)輸入這些指令,它們會告訴你目前 `python` 指令指向的實際檔案路徑。從路徑中,你通常可以推斷出是哪個版本的Python。例如,如果路徑是 `/Users/yourname/.virtualenvs/my_env/bin/python`,那麼它就是 `my_env` 這個虛擬環境中的 Python。
經驗分享: 很多時候,我們在開發專案時,會因為安裝了新的Python版本,或者不小心切換了虛擬環境,導致程式行為改變。最好的習慣是:在開始一個新專案時,就建立一個乾淨的虛擬環境,並明確指定你需要的Python版本。這樣一來,不同專案之間的依賴和版本就互不干擾了。
Q4: `sys.version` 和 `sys.version_info` 差在哪裡?我該用哪個?
解答:
- `sys.version`: 這是一個字串 (string) 格式的輸出,包含了非常詳細的Python版本、建置日期、編譯器等資訊。例如:
'3.9.7 (default, Sep 16 2021, 13:09:58) \n[GCC 7.5.0]'。它的優點是資訊完整,缺點是比較難以用程式碼進行精確的比較判斷,因為字串格式可能會有細微差異。 - `sys.version_info`: 這是一個具名元組 (named tuple),結構化地提供了版本資訊,例如 `sys.version_info(major=3, minor=9, micro=7, releaselevel='final', serial=0)`。它有明確的 `major` (主版本)、`minor` (次版本)、`micro` (微版本) 等屬性,非常適合在程式碼中進行版本比較。例如,你可以輕鬆寫出 `if sys.version_info.major >= 3 and sys.version_info.minor >= 8:`。
建議: 在程式碼中進行版本判斷時,強烈建議使用 `sys.version_info`,因為它提供了結構化的、易於比較的資訊,更加穩定和可靠。而 `sys.version` 則更適合用於顯示給使用者看,提供較為完整的資訊。
掌握了這些方法,無論你是剛開始接觸Python的新手,還是已經在程式碼的世界裡遨遊許久的開發者,都能夠自信地回答「Python版本怎麼看」這個問題,並為你的開發專案奠定堅實的基礎!

