BACK
Featured image of post 【Pyenv】輕鬆管理 Python 版本的好工具!

【Pyenv】輕鬆管理 Python 版本的好工具!

Pyenv 是一個 Python 版本控制的套件,安裝好後可以輕鬆切換 Python 版本,如果你有 Python 版本切換的困擾的話,那 Pyenv 絕對是你的好幫手!本文從 Pyenv 安裝 (Mac、Windows、Linux) 教學,到 Python 版本切換都有詳細介紹。

參考網站
參考網站
參考網站
參考網站

Python 近 10 年來一直在演進,因此 Python 專案的開發也需要考慮版本的問題,特別是 Python 2 已經退休了,而現在的 Python 專案都以 Python 3 為主;然而有些公司內部的老舊專案仍以 Python 2 開發,因此開發者必須在 Python 2 與 3 之間進行切換。

如果你有 Python 版本切換上的困擾,那麼 pyenv 會是你的好朋友!


安裝 Pyenv

Mac 安裝 Pyenv

  1. 更新 Homebrew,並安裝 Pyenv 的相依套件:
1
2
brew update
brew install openssl readline sqlite3 xz zlib
  1. 透過 Homebrew 在 Mac 安裝 pyenv
1
brew install pyenv
  1. ~/.zshrc 加入 PYENV_ROOT 路徑和 pyenv init
1
2
3
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
  1. 重新啟動 shell,就完成囉!
1
exec "$SHELL"

Windows 安裝 Pyenv

  1. 使用 git 下載 pyenv-win
1
git clone https://github.com/pyenv-win/pyenv-win.git "$HOME/.pyenv"

1-2. 亦可使用 pip 進行下載:

PowerShell:
1
pip install pyenv-win --target $HOME\\.pyenv
cmd:
1
pip install pyenv-win --target %USERPROFILE%\.pyenv
  1. 設定環境變數:
1
2
3
4
[System.Environment]::SetEnvironmentVariable('PYENV',$env:USERPROFILE + "\.pyenv\pyenv-win\","User")
[System.Environment]::SetEnvironmentVariable('PYENV_ROOT',$env:USERPROFILE + "\.pyenv\pyenv-win\","User")
[System.Environment]::SetEnvironmentVariable('PYENV_HOME',$env:USERPROFILE + "\.pyenv\pyenv-win\","User")
[System.Environment]::SetEnvironmentVariable('path', $env:USERPROFILE + "\.pyenv\pyenv-win\bin;" + $env:USERPROFILE + "\.pyenv\pyenv-win\shims;" + [System.Environment]::GetEnvironmentVariable('path', "User"),"User")
  1. 重新開啟終端機,就完成囉!

Linux 安裝 Pyenv

  1. 更新 apt-get 和安裝相依性套件:
1
2
apt-get update
apt-get install make 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
  1. 利用 git 安裝 pyenv
1
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
  1. ~/.bashrc 加入 PYENV_ROOT 路徑和 pyenv init
1
2
3
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bashrc

關於其他 system 需要安裝的相依套件,可以參考這篇文件

  1. 重新啟動 shell,就完成囉!
1
exec "$SHELL"

驗證 Pyenv 是否安裝成功?

1
2
3
pyenv --version

> pyenv 3.1.1

如何使用 Pyenv 切換 Python 版本?

  1. 查看 pyenv 可安裝的 Python 版本
1
2
3
4
5
6
7
pyenv install --list # 或 -l

>>>  3.7.6
>>>  3.7.7
>>>  3.8.0
>>>  3.8.1
>>>  3.8.2
  1. 安裝想選擇的 python 版本
1
pyenv install 3.7.7
  1. 查看 pyenv 已經安裝過的 python 版本
1
2
3
4
pyenv versions

>>> * system (set by /Users/wayne/.pyenv/version)
>>>   3.7.7
  1. 切換 Python 版本,可以選擇用 globallocalshell 來執行:
1
2
3
pyenv global 3.7.7
# 或 pyenv local 3.7.7
# 或 pyenv shell 3.7.7

globallocalshell 三者使用方法差異在於:

  • global:對應於全局
  • local:對應於當前資料夾
  • shell:對應於當前 shell

優先順序是 shell ➡️ local ➡️ global。


Pyenv 切換 python 版本成功後,如何查看?

可以使用 python3 --version 來查看目前 python 版本,如果顯示的是你剛設定的版本,就代表成功囉!

1
2
3
python3 --version

> Python 3.10.1 

Pyenv 如何切換成原始系統的版本?

可以使用 pyenv {{global}} system,system 代表原本系統的 python 版本,就可以切換回去囉!

1
pyenv global system

更新 Python 環境資訊

如果有使用 pip 安裝或解安裝 library 以及異動特定 version Python 的資料夾內容,必須使用 rehash 通知 pyenv 重新對應相關的使用連結。

1
pyenv rehash

comments powered by Disqus