Python 版本(ben)管理/虛擬環境:Pyenv 安裝 & 使用
簡介
是一款十分流行的 Python 版(ban)本(ben)管理工具,是使(shi)用純 Shell 腳本(ben)編寫的。
Pyenv 的主(zhu)要(yao)功能:
- 安裝多個 Python 版本:用戶可以輕松安裝各種版本的 Python,包括官方的 CPython、Anaconda、PyPy 等。
- 版本切換:通過簡單的命令,用戶可以在全局、項目或 shell 會話中切換 Python 版本。
- 虛擬環境支持:結合 ?pyenv-virtualenv 插件,用戶可以創建和管理虛擬環境,更加方便地隔離項目依賴。
- 簡化管理:提供簡單的命令行工具,使得安裝、卸載和切換 Python 版本變得更加直觀。
如何安裝
1. 獲取Pyenv
-
macOS:
brew update brew install pyenv -
自(zi)動(dong)安(an)裝器(qi),用(yong)于包括 macOS 和 Linux 在內的類 Unix 系統:
curl //pyenv.run | bash如果通(tong)過(guo)這種方式安(an)裝(zhuang),可能需要(yao)(yao)安(an)裝(zhuang)必要(yao)(yao)的構建工具(ju)。
sudo apt install build-essential libssl-dev zlib1g-dev \ libbz2-dev libreadline-dev libsqlite3-dev curl \ libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
2. 設置環境變量
如果使用 zsh, 將以下文本添加至~/.zshrc 和 ~/.zprofile 中。bash同理。
export PYENV_ROOT="$HOME/.pyenv"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
注(zhu):如(ru)果(guo)有更多需求(qiu),請(qing)看。
比如,有(you)些(xie)系統(tong)(如Cent OS)的 bash 可能會(hui)進入無限循環。Debian/Ubuntu 無此問(wen)題。
3. 重啟 shell
或者
source ~/.zshrc
使用指南
安裝一個 Python 版本。
pyenv install 3 # 安裝最新的 3.x.x
pyenv install 3.13 # 安裝最新的 3.13.x
pyenv install 3.13.2 # 安裝指定的
當然,你也可以使用 pyenv install -l 來看所有可用(yong)的版本,特(te)別是(shi)其他 python 的各種分(fen)支(zhi)。
使用
pyenv latest -k <prefix>可(ke)以查(cha)看某個(ge)前綴在安裝的時(shi)候(hou)會被補全為(wei)什么樣子。當使用不完全的前綴的時候,
pyenv install安(an)裝最(zui)(zui)新(xin)的可用(yong)版(ban)本,其他指令對應(ying)的是最(zui)(zui)新(xin)的已安(an)裝的版(ban)本。
切換 Python 版本。
使(shi)用以(yi)下指(zhi)令(ling)可以(yi)用來切換 pyenv 安裝的(de) python,優先級從上到(dao)下依次(ci)降低。
如果版本指定的是 system,或(huo)者沒有指定(ding),則使用系統自帶的python。
-
pyenv shell:僅對當前 shell 會話(hua)生效,優先級最高。原理:
export PYENV_VERSION=<version> -
pyenv local:對當前目錄及其子(zi)目錄生效(xiao)。原理:對
./.python-version文件進(jin)行寫入,對當前目(mu)錄或者最近的父目(mu)錄進(jin)行讀取。 -
pyenv global:對當前用戶生效。原理:對
$PYENV_ROOT/version文件進行(xing)寫(xie)入和(he)讀取。
更多用法,請看:
或者
pyenv help shell/local/global
卸載 Python 版本。
pyenv uninstall <version>
更新 Pyenv
更(geng)新可以獲取最新的 Python 版本(ben)列表(biao)。
- 如果是 brew 安裝的:
brew upgrade pyenv - 否則:
pyenv update
Pyenv-virtualenv
如果需要使用虛擬環境(jing),可以安裝這個插件。
安裝
Brew: 如果 pyenv 是通過 brew 安裝的,則該插件也使用 brew 安裝
brew install pyenv-virtualenv
否則,使用如(ru)下方(fang)法(fa)。
git clone //github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
安裝完畢之后,在shell 的 .rc 文件中添加:
eval "$(pyenv virtualenv-init -)"
創建虛擬環境
pyenv virtualenv <python_version> <vertualenv_name>
# or
pyenv virtualenv <vertualenv_name> # 使用當前激活的 python 版本
激活虛擬環境
創建后,如果使用pyenv local <name>,則下次會自(zi)動激活該虛擬環(huan)境。
pyenv activate <name> # 作用和 pyenv shell <name> 差不多,但是后者無法被 deactivate
pyenv deactivate
刪除虛擬環境
pyenv uninstall <name>
# or
python virtualenv-delete <name>
