更新:2021-07-22 环境:CentOS 7
简介
pyenv 可以方便地在多个 Python 版本之间切换。
安装 pyenv
手动安装可参考 pyenv 项目主页或通过 pyenv-installer 安装,本文使用后者进行安装。
1)安装编译 Python 所需的依赖环境
因为 pyenv 是从源码安装 Python,因此需要先安装相关依赖包,避免后续安装 Python 失败,依赖包参考 Suggested build environment
yum install -y gcc zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel tk-devel libffi-devel xz-devel
2)安装 pyenv
可以切换到自己的帐号执行,不需要使用 root 权限
# 可能需要配置代理
#export HTTPS_PROXY=$ip:$port
curl -s https://pyenv.run | bash
3)添加初始化命令,根据自己使用的 Shell 编辑相应的 profile 文件(如 .bash_profile
),添加以下代码
# pyenv
if [[ -d $HOME/.pyenv ]]; then
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
fi
4)重启 SHELL 以使配置生效
exec $SHELL
更新 pyenv
# 处理 Git 版本过低导致无法更新 pyenv 的问题(CentOS 系统需要)
sed -i 's/--no-rebase --ff//' ~/.pyenv/plugins/pyenv-update/bin/pyenv-update{,n}
pyenv update
使用 pyenv
pyenv 命令参考
pyenv 命令帮助参考 https://github.com/pyenv/pyenv/blob/master/COMMANDS.md
pyenv update # 更新 pyenv
pyenv help # 查看帮助
pyenv commands # 列出所有可用命令
pyenv install -l # 列出可用的版本
pyenv install 3.9.5 # 安装指定版本
pyenv uninstall 3.9.5 # 卸载指定版本
# 切换版本,优先级 shell > local > global
pyenv shell 3.9.5 # 当前 Shell 切换到指定版本,取消:pyenv shell --unset
pyenv local 3.9.5 # 当前目录切换到指定版本,取消:pyenv local --unset
pyenv global 3.9.5 # 全局切换到指定版本
pyenv version # 查看当前使用的版本
pyenv versions # 查看所有已安装的版本
使用 pyenv 安装 Python
# 列出可安装的 Python 版本,包括其他发行版
pyenv install -l
# 查看当前使用的版本
pyenv version
# 安装指定的版本(通过源码编译安装,需要一些时间)
pyenv install 3.9.5
# 查看当前系统下可用的版本
pyenv versions
# 全局切换到指定版本
pyenv global 3.9.5
# 或者只在当前目录下切换指定版本
pyenv local 3.9.5
# 查看当前使用的版本
pyenv version
python -V
使用 pyenv virtualenv 创建虚拟环境
# 创建虚拟环境
pyenv virtualenv 3.9.5 learnpython-3.9.5
# 列出已创建的虚拟环境
pyenv virtualenvs
# 激活虚拟环境
pyenv activate learnpython-3.9.5
# 退出虚拟环境
pyenv deactivate learnpython-3.9.5
# 删除虚拟环境
pyenv uninstall learnpython-3.9.5
卸载 pyenv
pyenv 将所有的文件都存放到 $PYENV_ROOT
变量指定的目录下,默认为 ~/.pyenv
,只需删除该目录,并将添加到 profile 文件中的配置删除即可,具体参考 Uninstall。