一.安装pyenv:

1.>安装依赖包:
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y

2.>安装pyenv包:
git clone https://github.com/pyenv/pyenv.git ~/.pyenv

3.>设置环境变量:
#vim ~/.bashrc 
export PYENV_ROOT="$HOME/.pyenv" 
export PATH="$PYENV_ROOT/bin:$PATH" 
eval "$(pyenv init -)"

#source ~/.bashrc
#即是启动语句,重启系统执行这条语句
exec bash

二、pyenv基本命令

1.安装Python

pyenv install 3.4.0  #但是国内直接执行命令安装会报错,如下图:

Centos7安装Python虚拟环境之pyenv_bash

解决方法:

在当前用户家目录下.pyenv/目录下创建cache目录,将下载好的Python-3.5.7的包放在该目录下,就不会去下载Python文件,直接执行安装,而不需要下载,节省下载时间,如下图:

Centos7安装Python虚拟环境之pyenv_bash_02

2.查看pyenv支持的python版本

Centos7安装Python虚拟环境之pyenv_Python_03

3.查看当前pyenv可检测到的所有版本,处于激活状态的版本前以 * 标示.

 

Centos7安装Python虚拟环境之pyenv_Python_04

4.切换系统全局Python版本

Centos7安装Python虚拟环境之pyenv_bash_05

但是这样粗暴的切换很有可能会出现问题,通常我们只需要在需要切换版本的路径下切换就好

5.目录下使用指定的Python版本

[root@k8s-node2 mnt]# pyenv global system   #将当前的全局Python版本还原到之前的版本
[root@k8s-node2 mnt]# python -V  #系统自带的Python版本
Python 2.7.5
[root@k8s-node2 mnt]# pyenv version  #检查 pyenv当前py 版本
system (set by /root/.pyenv/version)
[root@k8s-node2 mnt]# mkdir ops #创建一个测试目录
[root@k8s-node2 mnt]# cd ops/
[root@k8s-node2 ops]# pyenv local 3.5.7  #使用local子命令指定当前目录使用3.5.7版本
[root@k8s-node2 ops]# python -V #检查当前版本
Python 3.5.7
[root@k8s-node2 ops]# cd #切换到其他目录
[root@k8s-node2 ~]# python -V #再次检查Python版本 ops目录下版本为3.5.7   全局为2.7.5 符合预期
Python 2.7.5

6.对pyenv数据库进行更新(安装Python后执行):

pyenv rehash

7.卸载已安装的Python

pyenv uninstall 3.5.7

8.问题

在shell脚本中发现无法正常切换,哪位大佬知道原因可以告诉我一下

"一劳永逸" 的话,有是有的,而 "一劳永逸" 的事却极少