Python 版本管理的好工具 - pyenv
Last updated on Mar 13, 2023 in Python 程式設計 - 初階 , Python 模組/套件推薦 by Amo Chen ‐ 2 min read
Python 近 10 年來一直在演進,因此 Python 專案的開發也需要考慮版本的問題。
特別是 Python 2 已經退休了,而現在的 Python 專案都以 Python 3 為主,然而有些公司內部的老舊專案仍以 Python 2 開發,因此開發者必須在 Python 2 與 3 之間進行切換。
如果你有 Python 版本切換上的困擾,那麼 pyenv 會是你的好朋友!
本文環境
- macOS
macOS 上安裝方式 pyenv 十分簡單,透過 homebrew 即可:
$ brew install pyenv
pyenv 設定
安裝 pyenv 完成之後,請執行以下指令,以進行後續的設定:
$ pyenv init
執行成功之後,會出現以下的提示,告訴我們必須在 ~/.zshrc
中加入以下幾行以啟用 pyenv:
export PYENV_ROOT="$HOME/.pyenv"
command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
上述設定是登入系統後就自動啟用 pyenv 。
pyenv init
會自動偵測你所使用的 shell 環境,如果你是習慣使用 bash 的使用者,它會提示你需修改 .bash_profile
而不是 .zshrc
。
設定完成後,執行以下指令讓 SHELL 重新啟動,讓 pyenv 的設定生效:
$ exec "$SHELL"
以上就完成設定囉!
pyenv 使用方法
pyenv 是幫助我們方便切換 Python 版本的工具,因此我們可以利用以下指令列出現在我們有哪些版本的 Python 可以使用:
$ pyenv versions
* system
由於我們尚未安裝其他版本的 Python, 因此上述指令的結果只有 system
,也就是系統預設版本。
那麼 pyenv 提供哪些版本可供安裝呢?可以用以下指令列出:
$ pyenv install --list
...
3.6.9
3.7.0
3.7-dev
3.7.1
3.7.2
...
查到版本後,就能以下指令安裝較新的版本,例如 Python 3.11.1 :
$ pyenv install 3.11.1
成功之後,再執行一次 pyenv versions
,就會發現多了 3.11.1 :
$ pyenv versions
* system
3.11.1
然後進一步用以下指令將系統預設的 Python 版本切換為 3.11.1 :
$ pyenv global 3.11.1
可以用以下指令驗證是否已經切換為 python 3.11.1 :
$ python --version
Python 3.11.1
如果想針對某個資料夾指定切換 Python 版本的話,可以在該資料夾內使用指令 pyenv local <版本>
指令指定版本,該指令會在該資料夾內建立一個 .python-version
檔案,如果未來再進入該資料夾, pyenv 就會根據 .python-version
的內容自動切換 Python 版本,例如:
$ cd my-python-3.10.9-project
$ pyenv local 3.10.9
$ python --version
Python 3.10.9
以上就是 pyenv 的使用方法,有興趣想進一步了解 pyenv 的話可以到 pyenv GitHub 閱讀更多官方文件。
References
https://github.com/pyenv/pyenv