參考網站
參考網站
參考網站
參考網站
Python 近 10 年來一直在演進,因此 Python 專案的開發也需要考慮版本的問題,特別是 Python 2 已經退休了,而現在的 Python 專案都以 Python 3 為主;然而有些公司內部的老舊專案仍以 Python 2 開發,因此開發者必須在 Python 2 與 3 之間進行切換。
如果你有 Python 版本切換上的困擾,那麼 pyenv 會是你的好朋友!
安裝 Pyenv
Mac 安裝 Pyenv
- 更新 Homebrew,並安裝 Pyenv 的相依套件:
1
2
| brew update
brew install openssl readline sqlite3 xz zlib
|
- 透過 Homebrew 在 Mac 安裝 pyenv:
- 在
~/.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
|
- 重新啟動 shell,就完成囉!
Windows 安裝 Pyenv
- 使用 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
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")
|
- 重新開啟終端機,就完成囉!
Linux 安裝 Pyenv
- 更新 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
|
- 利用 git 安裝 pyenv:
1
| git clone https://github.com/pyenv/pyenv.git ~/.pyenv
|
- 在
~/.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 需要安裝的相依套件,可以參考這篇文件。
- 重新啟動 shell,就完成囉!
驗證 Pyenv 是否安裝成功?
1
2
3
| pyenv --version
> pyenv 3.1.1
|
如何使用 Pyenv 切換 Python 版本?
- 查看 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
|
- 安裝想選擇的 python 版本
- 查看 pyenv 已經安裝過的 python 版本
1
2
3
4
| pyenv versions
>>> * system (set by /Users/wayne/.pyenv/version)
>>> 3.7.7
|
- 切換 Python 版本,可以選擇用
global
、local
或 shell
來執行:
1
2
3
| pyenv global 3.7.7
# 或 pyenv local 3.7.7
# 或 pyenv shell 3.7.7
|
global
、local
、shell
三者使用方法差異在於:
- 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 版本,就可以切換回去囉!
更新 Python 環境資訊
如果有使用 pip 安裝或解安裝 library 以及異動特定 version Python 的資料夾內容,必須使用 rehash 通知 pyenv 重新對應相關的使用連結。