Python多环境扩展管理pyenv

pyenv是一个简单的python版本管理工具,通过改变shell的环境变量来切换不同的python版本,以达到多版本共存的目的。


pyenv工作原理

  • pyenv安装后会在系统PATH变量中插入shims路径,每次执行python相关的可执行文件时,会优先在shims里寻找python路径 ~/.pyenv/shims:/usr/local/bin:/usr/bin:/bin;

  • 系统选择python版本,依如下顺序选择python的版本:

    1. shell变量设置(执行pyenv shell查看)
    2. 当前可执行文件目录下的.python_version文件里的版本号(执行pyenv shell查看)
    3. 上层目录查询找到的第一个.pyenv-version文件
    4. 全局的版本号在 ~/.pyenv/version文件内(执行pyenv global查看)
  • 确定版本文件的位置和python版本后,pyenv会根据 版本号在 ~/.pyenv/versions/文件夹中查找对应的python版本。

  • 执行命令 pyenv versions可查看系统目前安装的python版本。

部署pyenv

1.clone pyenv至家目录

git clone https://github.com/pyenv/pyenv.git ~/.pyenv

2.配置pyenv环境变量

echo 'export PYENV_ROOT="$HOME/.pyenv" ' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH" ' >> ~/.bashrc
echo 'eval "$(pyenv init -)" ' >> ~/.bashrc 

3.重启当前shell

exec $SHELL -l

执行pyenv versions 命令,有类似如下返回结果表示安装正常

[root@DH-SHARE ~]# pyenv versions
* system (set by /root/.pyenv/version) 

使用pyenv

通过pyenv管理多python版本

  • pyenv命令使用规则如下:
    Usage: pyenv <command> [<args>]

  • 查看可安装的版本列表
    pyenv install -list

  • 安装指定的python版本
    pyenv install 2.7.8

  • 切换当前目录的python版本为2.7.8
    pyenv local 2.7.8

  • 切换全局目录的python版本为2.7.8
    pyenv global 2.7.8

  • 刷新shims
    pyenv rehash