在 Ubuntu 中檢查、變更、切換 Python 版本的方法【完整指南】

1. 前言

在 Ubuntu 上使用 Python 時,Python 版本管理 是一個重要的課題。
Python 會定期發布新版本,根據開發環境的不同,可能需要使用不同的 Python 版本。

然而,在 Ubuntu 上 可能同時存在多個 Python 版本,因此經常會遇到以下情境:
「想確認當前的 Python 版本」
「想使用特定版本的 Python」
「想切換 Python 版本」

本篇文章將詳細說明 如何在 Ubuntu 上確認、變更與切換 Python 版本
透過範例指令,即使是初學者也能輕鬆操作,請務必閱讀到最後!

侍エンジニア塾

2. 確認 Python 版本【立即可試!】

首先,介紹如何檢查目前安裝在 Ubuntu 上的 Python 版本。

2.1 最簡單的方法(1 秒內完成)

在 Ubuntu 上確認 Python 版本的最簡單方法,就是在終端機中執行以下指令:

python3 --version

或者,也可以使用以下指令,結果相同:

python3 -V

執行範例:

$ python3 --version
Python 3.10.6

執行後,系統會顯示當前的 Python 版本。

2.2 python --versionpython3 --version 的差異

在 Ubuntu 中,python 指令可能對應到 Python 2
因此通常建議使用 python3 --version 來確認版本。

可透過以下指令檢查 python 是否已安裝:

python --version

如果出現 Command 'python' not found 的錯誤訊息,代表系統可能只安裝了 Python 3。

2.3 取得更詳細的版本資訊

如果想查看 Python 的詳細版本資訊,可以執行以下指令:

python3 -VV

執行範例:

$ python3 -VV
Python 3.10.6 (main, Jan 16 2024, 11:25:20) [GCC 11.2.0]

此指令會顯示 Python 的完整版本資訊,包括使用的 GCC 版本與建置時間。

2.4 在 Python 程式中取得版本資訊

如果需要在 Python 程式內確認 Python 版本,可以使用 sys 模組:

import sys
print(sys.version)
print(sys.version_info)

執行範例:

$ python3 script.py
3.10.6 (main, Jan 16 2024, 11:25:20) [GCC 11.2.0]
sys.version_info(major=3, minor=10, micro=6, releaselevel='final', serial=0)

使用 sys.version_info 可以以數字形式取得 Python 版本的主要、次要與修正版本號。

3. 變更與管理 Python 版本【設定系統預設版本】

在 Ubuntu 中,可能同時安裝了多個 Python 版本。
本節將介紹如何變更系統預設的 Python 版本。

3.1 確認已安裝的 Python 版本

首先,檢查 Ubuntu 中已安裝的 Python 版本:

ls /usr/bin/python*

執行範例:

$ ls /usr/bin/python*
/usr/bin/python3  /usr/bin/python3.8  /usr/bin/python3.10

如果系統中安裝了多個版本,可以選擇要設為預設的版本。

3.2 使用 update-alternatives 切換預設 Python 版本

Ubuntu 提供了 update-alternatives 指令,可用來切換系統預設的 Python 版本。

首先,檢查當前的 Python 設定:

sudo update-alternatives --display python

如果 python 尚未註冊,可使用以下指令新增:

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.10 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 2

接著,選擇要使用的 Python 版本:

sudo update-alternatives --config python

執行範例:

There are 2 choices for the alternative python (providing /usr/bin/python).

  Selection    Path                Priority   Status
------------------------------------------------------------
* 0            /usr/bin/python3.10  1         auto mode
  1            /usr/bin/python3.10  1         manual mode
  2            /usr/bin/python3.8   2         manual mode

Press <enter> to keep the current choice[*], or type selection number: 

輸入要切換的版本編號,即可變更預設的 Python 版本。

3.3 手動變更符號連結(Symbolic Link)

若不使用 update-alternatives,也可以透過修改符號連結來變更系統的 Python 版本:

sudo ln -sf /usr/bin/python3.10 /usr/bin/python

執行後,系統中的 python 指令將對應到 python3.10


4. 依專案切換 Python 版本

在 Ubuntu 上使用 Python 時,可能會遇到 不同專案需要不同的 Python 版本 的情況。
例如,某個專案需要 Python 3.10,而另一個專案則使用 Python 3.8
這時候,可以使用 虛擬環境(venv)或 pyenv 來管理 Python 版本

本節將介紹如何使用 venvpyenv 輕鬆切換 Python 版本。

4.1 使用 venv 為不同環境管理 Python 版本

Python 內建的 venv(虛擬環境) 功能,允許在特定目錄內獨立管理 Python 版本與套件。

建立 venv 虛擬環境

先進入專案目錄,然後執行以下指令來建立虛擬環境:

python3 -m venv myenv

此指令將建立一個名為 myenv 的虛擬環境。

啟動虛擬環境

啟動虛擬環境需執行以下指令:

source myenv/bin/activate

啟動後,終端機提示符會發生變化:

(myenv) user@ubuntu:~/project$

此時,系統將使用虛擬環境內的 Python。

確認虛擬環境內的 Python 版本

在虛擬環境內,可執行以下指令確認 Python 版本:

python --version

關閉虛擬環境

要退出虛擬環境時,執行以下指令:

deactivate

透過這種方式,可 為不同專案獨立管理 Python 版本與套件

4.2 使用 pyenv 管理 Python 版本

雖然 venv 可為單個專案管理 Python 環境,
但若想要在整個系統內自由切換 Python 版本,建議使用 pyenv

安裝 pyenv

在 Ubuntu 上安裝 pyenv,可執行以下指令:

curl https://pyenv.run | bash

安裝完成後,執行以下指令以套用設定:

exec $SHELL

使用 pyenv 安裝 Python 版本

透過 pyenv 安裝 Python 版本的指令如下:

pyenv install 3.10.6

若要查看可安裝的 Python 版本,可執行:

pyenv install --list

使用 pyenv 切換 Python 版本

要變更系統全域的 Python 版本,可執行:

pyenv global 3.10.6

若只想在特定目錄內變更 Python 版本,可使用:

pyenv local 3.8.10

確認目前使用的 Python 版本

可透過以下指令確認目前的 Python 版本:

pyenv versions

透過 pyenv,可 輕鬆管理與切換不同的 Python 版本

5. 常見問題(FAQ)【疑難排解】

本節將介紹在 Ubuntu 上管理 Python 版本時,常見的問題與解決方法。

Q1: pythonpython3 有什麼不同?

在 Ubuntu 中,python3 是預設的 Python 版本,而 python 可能對應到 Python 2。
因此,建議使用 python3 --version 來確認 Python 版本。

Q2: 為什麼 python --version 顯示的版本與預期不同?

這可能是因為系統預設的 Python 版本未正確變更。可以使用以下方法來修改:

  • 使用 update-alternatives
sudo update-alternatives --config python
  • 使用 pyenv
pyenv global 3.10.6

Q3: 為什麼 python3 --version 可以執行,但 python 無法執行?

這可能是因為系統未安裝 python 指令,或者 python 未對應到 python3
可以透過以下指令來建立符號連結,讓 python 對應到 python3

sudo ln -sf /usr/bin/python3 /usr/bin/python

Q4: 如何在 Ubuntu 上移除舊版本的 Python?

首先,確認已安裝的 Python 版本:

apt list --installed | grep python

若要移除特定版本的 Python,可以使用以下指令:

sudo apt remove python3.6

Q5: 刪除舊版 Python 會影響 Ubuntu 嗎?

Ubuntu 的某些系統工具可能依賴特定的 Python 版本,因此在移除 Python 前,請先確認當前系統仍保有必要的 Python 版本。

可以執行以下指令來檢查已安裝的 Python 版本:

apt list --installed | grep python

6. 總結 & 下一步推薦閱讀

本篇文章詳細介紹了 如何在 Ubuntu 上檢查、變更與切換 Python 版本

  • 確認 Python 版本python3 --version
  • 變更系統預設的 Python 版本 → 使用 update-alternativesln -sf
  • 為專案管理不同的 Python 版本 → 使用 venv(虛擬環境)或 pyenv

特別是 pyenv,可以大幅簡化 Python 版本的管理。
如果您需要在多個專案間切換不同的 Python 版本,或想變更系統的預設 Python 版本,建議嘗試使用 pyenv

相關網站

Pythonプログラミングの世界

Pythonプログラミングの世界へようこそ!初心者から上級者まで、Pythonの基礎から応用、データ分析やWeb開発まで…

 

年収訴求