使用 pyenv 工具管理和安装多个 python 版本

在开发 Python 程序的时候,有时候可能需要在不同版本的 Python 上进行测试,pyenv 就是这么一个管理多版本 Python 的工具,使用它可以在同一台机器上
安装多个不同的 python 版本,并且切换也很方便。

注:本文以在 CentOS 系统中安装和配置为例。

1、安装 pyenv

执行以下命令进行安装:

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

如果安装时报错说“pyenv: Git is not installed, can‘t continue.”(git 没安装,无法继续),则请先安装 git (可参考:CentOS 中安装和更新 git 客户端工具)。

2、配置环境变量

在  ~/.bashrc 文件中添加以下配置:

export PATH="/root/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

这里是为了以后每次打开shell终端时都自动初始化 pyenv。

3、查看可安装的 python 版本

配置完环境变量后,需要重新打开shell终端才能让刚刚的配置生效。

在新打开的shell终端输入以下命令查看支持的python版本:

# pyenv install --list
Available versions:  # 这些版本都是可以安装使用的
  2.1.3
  2.2.3
  2.3.7
  ...
  2.7.16
  2.7.17
  ...
  3.8.0
  3.8.1
  3.9-dev
  ...

4、安装指定版本 python

首先需要安装必要的库(如果不安装的话,安装指定版本python时可能会报错):

yum install   zlib-devel   bzip2   bzip2-devel   readline-devel   sqlite   sqlite-devel   openssl-devel   xz   xz-devel   libffi-devel

然后,安装你需要的版本,例如:

pyenv install 2.7.16    # 安装 2.7.16 版本
pyenv install 3.7.5     # 安装 3.7.5 版本

5、版本切换

使用 python shell 命令进行版本切换:

[ ~]# python -V           # 查看当前默认版本
Python 2.7.5
[ ~]# pyenv shell 2.7.16  # 切换至 2.7.16 版本
[ ~]# python -V
Python 2.7.16
[ ~]# pyenv shell 3.7.5   # 切换至 3.7.5 版本
[ ~]# python -V
Python 3.7.5
[ ~]# pyenv shell --unset # 恢复默认版本
[ ~]# python -V
Python 2.7.5

完。