目录

pyenv:Python多版本管理

简介

pyenv 可以在主机上安装多个 Python 版本并轻松切换。主要特性有:

  • 更改用户的全局 Python 版本;
  • 为单个项目设置不同的 Python 版本;
  • 使用环境变量覆盖 Python 版本设置;
  • 一次从多个 Python 版本中搜索命令,这有助于使用 tox 测试。

安装 pyenv

brew

Mac 用户可以通过 brew 安装:

1
2
brew update
brew install pyenv

Github

Linux 用户可以通过 pyenv-installer 这个项目从 Github 安装:

1
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | zsh

安装完成后,需要在 shell 配置中添加一些内容。bash 用户添加到 .bashrc,zsh 用户添加到 .zshrc

1
2
3
4
# pyenv
export PATH="/home/chi/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

更新 pyenv

1
pyenv update

安装依赖包

pyenv 本身并没有依赖包,但是由于其安装 Python 版本的方式是拉去源代码后本地编译,因此需要安装 Python 编译的依赖包:

  • Ubuntu/Debian
1
2
3
sudo apt install -y 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
  • macOS
1
brew install readline xz

基本操作

查看已安装的 Python 版本

1
pyenv versions

设置全局 Python 版本

1
pyenv global 3.7.1

安装指定 Python 版本,如果版本不存在,pyenv 会提示版本号相近的可用版本

1
pyenv install 3.7

卸载指定 Python 版本

1
pyenv uninstall 3.7.1

查看指定 Python 版本的安装目录

1
pyenv prefix 3.7.1

为 shell 指定/取消指定 Python 版本

1
2
pyenv shell 3.7.1
pyenv shell --unset

卸载 pyenv

  1. 从 shell 配置文件中移除相关内容;
  2. 删除 pyenv 目录,一般是 ~/.pyenv

参考链接