安装不同的python版本并不是一件易事,更何况想在同一主机上来回切换不同版本的python是难上加难!大家都知道多版本会导致互相干扰,但是不是不不能解决呢??

确切回答:不是,因为有一个学习python的好帮手pyenv来管理不同的python版本!


一、首先来安装pyenv:

安装步骤也是很简单,直接在github上下载到本地,然后,分别执行以下命令即可

[root@cml_ali_sz_120 ~]# git clone https://github.com/yyuu/pyenv.git ~/.pyenv



[root@cml_ali_sz_120 ~]# echo 'export PYENV_ROOT="$HOME/.pyenv"' >> /etc/profile
[root@cml_ali_sz_120 ~]# echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> /etc/profile
[root@cml_ali_sz_120 ~]# echo 'eval "$(pyenv init -)"' >> /etc/profile

使以上配置生效:

[root@cml_ali_sz_120 ~]# source /etc/profile


到这里pyenv已经安装完成了,我们可以通过--help来查看pyenv的用法:

[root@cml_ali_sz_120 ~]# pyenv --help
Usage: pyenv <command> [<args>]
Some useful pyenv commands are:
   commands    List all available pyenv commands
   local       Set or show the local application-specific Python version
   global      Set or show the global Python version
   shell       Set or show the shell-specific Python version
   install     Install a Python version using python-build
   uninstall   Uninstall a specific Python version
   rehash      Rehash pyenv shims (run this after installing executables)
   version     Show the current Python version and its origin
   versions    List all Python versions available to pyenv
   which       Display the full path to an executable
   whence      List all Python versions that contain the given executable
See `pyenv help <command>' for information on a specific command.
For full documentation, see: https://github.com/pyenv/pyenv#readme


二、pyenv的使用:

首先可以使用install命令查看支持python的版本

[root@cml_ali_sz_120 ~]# pyenv install --list
Available versions:
  2.1.3
  2.2.3
  2.3.7
  2.4
  2.4.1
  2.4.2
  2.4.3
  2.4.4
  2.4.5
  2.4.6
  2.5
  2.5.1
  ...


我们这里选择了两个版本来测试在同一主机上安装多个版本的python:

 [root@cml_ali_sz_120 ~]# pyenv install -v 3.6.0
 [root@cml_ali_sz_120 ~]# pyenv versions
* system (set by /root/.pyenv/version)
  3.6.0
 [root@cml_ali_sz_120 ~]# pyenv install -v 2.7.13
 [root@cml_ali_sz_120 ~]# pyenv versions
* system (set by /root/.pyenv/version)
  2.7.13
  3.6.0

现在我们这个系统中就有三个python的版本了,下面就是如何去切换版本,注意的是'*'表示当前正在使用的版本。可以通过global切换版本:

(这里可能会担心到的切换版本时,版本所对应的依赖会不会一起切换,这个不用害怕相关的依赖也会跟着切换过来,所以完全不用去担心通系统下不同版本的相互影响,下面演示pip的版本也会随着python版本变更而变更)

[root@cml_ali_sz_120 ~]# pyenv global 3.6.0
[root@cml_ali_sz_120 ~]# pyenv versions
  system
  2.7.13
* 3.6.0 (set by /root/.pyenv/version)
[root@cml_ali_sz_120 ~]# pip --version
pip 9.0.1 from /root/.pyenv/versions/3.6.0/lib/python3.6/site-packages (python 3.6)
[root@cml_ali_sz_120 ~]# pyenv global 2.7.13
[root@cml_ali_sz_120 ~]# pyenv versions
  system
* 2.7.13 (set by /root/.pyenv/version)
  3.6.0
[root@cml_ali_sz_120 ~]# pip --version
pip 9.0.1 from /root/.pyenv/versions/2.7.13/lib/python2.7/site-packages (python 2.7)

最后切回到系统版本:

[root@cml_ali_sz_120 ~]# pyenv global system



如果想要删除python版本,则可以使用uninstall命令即可:

[root@cml_ali_sz_120 ~]# pyenv uninstall 2.7.13