pyenv 使您可以轻松地在多个版本的 Python 之间切换。
Github 地址: pyenv/pyenv: Simple Python version management (github.com)
安装
github 方式安装:
# 当前版本 pyenv 2.2.4-1
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
如果 git 安装超时,可以手动下载安装:
下载地址:https://github.com/pyenv/pyenv/releases
# 解压包
unzip pyenv-master_2.2.4-1.zip
# 移动并重命名目录
mv pyenv-master ~/.pyenv
配置
安装构建 Python 的依赖
- Ubuntu/Debian/Mint:
sudo apt-get update; sudo apt-get install make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
- CentOS/Fedora 21 and below:
yum install gcc zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel tk-devel libffi-devel xz-devel
参考:Install Python build dependencies
Bash 扩展
可选项,编译一个动态 Bash 扩展来加速 Pyenv:
cd ~/.pyenv && src/configure && make -C src
配置环境变量
(Debian, Ubuntu, Mint)
# the sed invocation inserts the lines at the start of the file
# after any initial comment lines
sed -Ei -e '/^([^#]|$)/ {a \
export PYENV_ROOT="$HOME/.pyenv"
a \
export PATH="$PYENV_ROOT/bin:$PATH"
a \
' -e ':a' -e '$!{n;ba};}' ~/.profile
echo 'eval "$(pyenv init --path)"' >>~/.profile
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
(Red Hat, Fedora, CentOS)
sed -Ei -e '/^([^#]|$)/ {a \
export PYENV_ROOT="$HOME/.pyenv"
a \
export PATH="$PYENV_ROOT/bin:$PATH"
a \
' -e ':a' -e '$!{n;ba};}' ~/.bash_profile
echo 'eval "$(pyenv init --path)"' >> ~/.bash_profile
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile
echo 'eval "$(pyenv init --path)"' >> ~/.profile
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
配置完重启 shell 使配置生效。
使用
安装 Python
显示可安装的 Python 版本清单:
$ pyenv install --list
安装指定版本的 Python,如 3.6.13 :
$ pyenv install 3.6.13
$ pyenv rehash
Python 默认会安装在目录: “$(pyenv root)/versions/”
下载慢或下载出错处理:
- 手动复制下载地址下载, 如: https://www.python.org/ftp/python/3.6.13/Python-3.6.13.tar.xz;也可替换前缀使用镜像地址,如:https://cdn.npm.taobao.org/dist/python/3.6.13/Python-3.6.13.tar.xz
- 将下载的文件复制到 “~/.pyenv/cache” 目录;
- 重新执行安装命令:
pyenv install 3.6.13
常用命令
# 设置全局默认 Python版本:
$ pyenv global 3.8.10
# 显示已安装的 Python
$ pyenv versions
system
3.6.13
3.7.13
* 3.8.10
# 设置当前shell的 python版本,会设置当前shell的环境变量PYENV_VERSION
$ pyenv shell 3.7.13
# 清除PYENV_VERSION的版本设置
$ pyenv shell --unset
# 设置或者显示当前路径的 Python版本
$ pyenv local
# 卸载 Python
$ pyenv uninstall 3.8.10
更多命令参考:pyenv/COMMANDS.md at master · pyenv/pyenv (github.com)
升级 pyenv
cd $(pyenv root)
git pull
卸载
关闭 Pyenv 管理:
只要注释掉配置环境变量时写入 shell 启动配置的 pyenv init
即可。
完全卸载 pyenv:
移除安装时写入 shell 启动配置的行,然后删除目录:
rm -rf $(pyenv root)
注:当前 pyenv 版本为 2.2.4-1,如有变动见官方文档。
– END –