pyenv管理多版本python

安裝不同的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