1. 什麼是 pyenv?
對於 Python 開發者來說,不同的專案可能需要不同版本的 Python。在這種情況下,pyenv
就是一個非常有用的工具。pyenv
是一款管理多個 Python 版本的工具,它可以讓您在不同的專案之間輕鬆切換 Python 版本。
Python 版本管理的挑戰
在 Python 開發過程中,可能會遇到不同專案需要不同 Python 版本的情況。例如,某個專案可能需要使用 Python 3.9,而另一個專案則可能需要 Python 2.7。然而,系統通常只允許安裝一個 Python 版本,這導致版本切換變得相當麻煩。pyenv
則可以解決這個問題。
pyenv 的優勢
使用 pyenv
可以獲得以下好處:
- 簡單的版本切換:使用
pyenv
,您可以輕鬆在全系統或特定專案中切換 Python 版本。 - 管理多個 Python 版本:可以使用單一指令管理系統內安裝的多個 Python 版本,讓專案之間的相依性和版本差異變得更容易處理。
- 支援多種作業系統(Windows 除外):可在 macOS 和 Linux 等作業系統上使用。
pyenv 的運作方式
pyenv
會為不同的 Python 版本建立專屬目錄,並將每個版本安裝到這些目錄內。使用者可以透過 pyenv global
或 pyenv local
指令來指定全系統或特定專案要使用的 Python 版本。

2. 如何安裝 pyenv
概覽
若要使用 pyenv
,首先需要在系統上安裝它。本節將介紹如何在 macOS 和 Linux 環境中安裝 pyenv
。由於 pyenv
不支援 Windows,因此建議使用其他方法(如 WSL 或 Anaconda)。
在 macOS 上安裝 pyenv
在 macOS 上,可以透過 Homebrew
來安裝 pyenv
。Homebrew
是 macOS 的套件管理工具,可以讓您輕鬆安裝各種軟體。請按照以下步驟進行安裝:
- 確認是否已安裝 Homebrew
首先,請確認您的系統上是否已安裝Homebrew
,打開終端機並執行以下指令:
brew --version
如果出現 Homebrew 的版本資訊,表示已安裝。如果尚未安裝,請前往官方網站(Homebrew 官方網站)查看安裝步驟。
- 安裝 pyenv
如果您的系統已安裝Homebrew
,請執行以下指令來安裝pyenv
:
brew install pyenv
安裝完成後,請繼續進行下一個步驟。
- 設定環境變數
為了讓pyenv
正常運作,需要設定 shell 環境變數。通常需要在.bash_profile
或.zshrc
檔案中新增設定。請執行以下指令:
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init --path)"' >> ~/.bash_profile
如果使用的是 .zshrc
,請將以上指令中的 .bash_profile
改為 .zshrc
。設定完成後,請重新啟動終端機,或執行以下指令以使設定立即生效:
source ~/.bash_profile
- 確認安裝是否成功
請執行以下指令,確認pyenv
是否正確安裝:
pyenv --version
如果顯示 pyenv 的版本號,表示安裝成功。
在 Linux 上安裝 pyenv
在 Linux 上,安裝方式與 macOS 類似,但通常使用 apt
或 yum
來安裝相關的相依套件。以下是 Ubuntu 上的安裝步驟:
- 安裝必要的相依套件
在安裝pyenv
之前,請先安裝所需的依賴套件。執行以下指令:
sudo apt update
sudo apt install -y build-essential libssl-dev zlib1g-dev libbz2-dev
libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev
xz-utils tk-dev libffi-dev liblzma-dev python-openssl git
- 安裝 pyenv
使用 Git 下載pyenv
並進行安裝:
curl https://pyenv.run | bash
- 設定環境變數
為了讓pyenv
正常運作,請在.bashrc
或.zshrc
中新增以下設定:
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init --path)"
要使設定生效,請重新啟動終端機,或執行 source ~/.bashrc
。
- 確認安裝
執行以下指令,確認pyenv
是否正確安裝:
pyenv --version

3. 管理 Python 版本
安裝 pyenv
之後,下一步就是學習如何使用它來管理 Python 版本。本節將介紹如何使用 pyenv
來安裝和切換不同版本的 Python。
安裝 Python 版本
透過 pyenv
,可以輕鬆安裝不同版本的 Python。例如,某個專案需要使用 Python 3.8,而另一個專案則需要 Python 3.9,您可以使用以下步驟來安裝所需的版本。
- 查看可用的 Python 版本
首先,使用以下指令查看pyenv
可用的 Python 版本清單:
pyenv install --list
這將列出所有可安裝的 Python 版本,您可以根據需求選擇適合的版本。
- 安裝指定的 Python 版本
要安裝特定版本的 Python,請執行以下指令:
pyenv install 3.9.1
此指令將在系統內安裝 Python 3.9.1。如果需要多個版本,可以分別執行對應的安裝指令。
切換 Python 版本
使用 pyenv
,可以方便地在不同的 Python 版本之間切換,確保每個專案使用適合的版本,避免相依性衝突。
- 切換全系統的 Python 版本
若要更改系統內預設使用的 Python 版本,可以執行:
pyenv global 3.9.1
這將設定 Python 3.9.1 為全系統預設版本,所有目錄都會使用該版本。
- 針對特定專案切換 Python 版本
若僅希望某個專案使用特定的 Python 版本,可以在該專案目錄內執行:
pyenv local 3.8.0
此指令會在當前目錄內設定 Python 3.8.0,其他目錄仍然使用 pyenv global
設定的版本。
- 確認當前使用的 Python 版本
若要確認目前系統或專案目錄內的 Python 版本,可以執行以下指令:
pyenv version
此指令將顯示當前正在使用的 Python 版本。
移除 Python 版本
如果不再需要某個 Python 版本,可以使用以下指令將其刪除:
pyenv uninstall 3.9.1
這將移除 Python 3.9.1 版本。

4. 搭配 virtualenv 使用
pyenv
能有效管理 Python 版本,但在開發 Python 專案時,還需要管理相依套件。為此,可以搭配 virtualenv
(虛擬環境)來使用,以確保專案間的相依性互不影響。本節將說明如何結合 pyenv
與 virtualenv
,並解釋其優勢。
什麼是 virtualenv?
virtualenv
是一款用於建立獨立 Python 環境的工具,能夠讓每個專案擁有自己的套件與相依性,而不影響系統的全域環境。例如,專案 A 需要 requests
2.0 版,而專案 B 則需要 3.0 版,這時可以為各自的專案建立獨立的虛擬環境,避免套件版本衝突。
pyenv 與 virtualenv 的區別
pyenv
主要負責 Python 版本管理,可讓您在系統內安裝多個 Python 版本,並為不同專案指定不同的版本。而 virtualenv
則用來 管理專案的套件相依性,確保專案內的 Python 環境不會相互干擾。
結合使用 pyenv
和 virtualenv
可以獲得以下優勢:
- 管理多個 Python 版本:透過
pyenv
安裝並切換不同版本的 Python。 - 專案間的相依性分離:使用
virtualenv
,讓每個專案擁有獨立的 Python 環境,避免相依性衝突。
安裝 pyenv-virtualenv
除了 pyenv
之外,還可以安裝 pyenv-virtualenv
插件,以更方便地管理虛擬環境。以下是安裝步驟:
- 安裝 pyenv-virtualenv
若使用 macOS,可以透過 Homebrew 安裝:
brew install pyenv-virtualenv
若使用 Linux,則可以透過 Git 安裝:
git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
- 設定環境變數
安裝完成後,請在.bash_profile
或.zshrc
中加入以下設定,並重新載入設定檔:
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile
source ~/.bash_profile
建立虛擬環境
使用 pyenv-virtualenv
可以根據特定 Python 版本建立獨立的虛擬環境。例如,建立 Python 3.8.0 的虛擬環境:
pyenv virtualenv 3.8.0 my_project_env
這將建立名為 my_project_env
的虛擬環境。
切換虛擬環境
要使用剛剛建立的虛擬環境,可以執行以下指令:
pyenv local my_project_env
此指令會讓當前目錄自動使用 my_project_env
這個虛擬環境。離開該目錄後,Python 版本將恢復為全域設定的版本。
刪除虛擬環境
如果不再需要某個虛擬環境,可以執行以下指令來刪除它:
pyenv uninstall my_project_env
virtualenv 的優勢
結合 pyenv
和 virtualenv
,可以完全分離不同專案的 Python 環境,降低相依性衝突的風險,確保開發環境的穩定性。

5. 使用 pyenv 時的注意事項
pyenv
和 virtualenv
讓 Python 版本管理變得更容易,但在使用時仍需注意某些問題,以下將列出常見錯誤與解決方案。
1. Windows 支援有限
pyenv
主要支援 macOS 和 Linux,Windows 並未被官方支援。若想在 Windows 上使用 pyenv
,可以考慮以下方法:
- 使用 Windows Subsystem for Linux (WSL):透過 WSL 安裝 Linux 環境,然後在 WSL 內安裝
pyenv
。 - 使用 Anaconda:Anaconda 也是一種管理 Python 環境的方法,適合 Windows 用戶使用。
2. 依賴套件不足導致錯誤
在 Linux 上安裝 pyenv
時,如果出現錯誤訊息,通常是因為缺少必要的系統套件。例如:
WARNING: The Python bz2 extension was not compiled. Missing the bzip2 lib?
解決方案:
- 安裝缺少的系統套件,例如
libbz2-dev
、libssl-dev
,然後重新執行pyenv install
。
sudo apt-get install -y build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev
3. 舊版 Python 與 pyenv 衝突
若系統內已有舊版 Python,可能會與 pyenv
管理的 Python 產生衝突。
解決方案:
- 確保您的
.bashrc
或.zshrc
設定中包含以下內容:
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init --path)"
- 重新啟動終端機,或執行
source ~/.bashrc
讓設定生效。
4. 指定 Python 版本錯誤
若在執行 pyenv install
時發生錯誤,請先確認版本號是否正確。
解決方案:
- 執行
pyenv install --list
查看可用版本,並確保輸入的版本號正確。
5. 虛擬環境相依性衝突
當多個虛擬環境共用相同的 Python 版本時,可能會發生相依性衝突。
解決方案:
- 每個專案應該建立獨立的虛擬環境,避免不同專案的相依性互相影響。
6. 總結與下一步
pyenv
是 Python 版本管理的強大工具,特別適合需要在多個專案中使用不同版本的 Python 開發者。透過 pyenv
,您可以輕鬆切換 Python 版本,並搭配 virtualenv
來管理專案的相依性。
pyenv 的核心優勢
- 簡化 Python 版本管理:可快速安裝與切換不同 Python 版本。
- 虛擬環境隔離:使用
pyenv-virtualenv
或virtualenv
,讓每個專案擁有獨立的環境。 - 解決相依性問題:防止不同專案的 Python 環境相互干擾。
下一步建議
- 進一步學習 Python 環境管理:除了
pyenv
之外,還可以學習pipenv
或poetry
來簡化依賴管理。 - 測試 pyenv:在您的專案中嘗試使用
pyenv
,看看如何有效管理 Python 版本。 - 適用於不同作業系統:若您使用的是 Windows,可考慮使用 WSL 或 Anaconda。
目次 1 1. はじめに1.1 Pythonバージョン管理の重要性1.2 Ubuntuとpyenvの組み合わせの利点2 …