|
|
|
|
移动端

2.7.1 使用pyenv管理不同的Python版本

《Python Linux系统管理与自动化运维》第2章Python生态工具,在本章中,我们将依次介绍Python生态的各种工具,包括:Python内置的小工具(2.1节);包管理工具pip(2.2节);Linux和Windows下的Python编辑器(2.3节);Python交互式编程工具(2.4节);Python调试器(2.5节);Python代码规范检查工具(2.6节)。本节为大家介绍使用pyenv管理不同的Python版本。

作者:赖明星来源:机械工业出版社|2017-09-28 16:29

技术沙龙 | 邀您于8月25日与国美/AWS/转转三位专家共同探讨小程序电商实战

2.7.1 使用pyenv管理不同的Python版本

安装不同的Python版本并不是一件容易的事情,在不同的Python版本之间来回切换更加困难,而且,多版本并存非常容易互相干扰。因此,我们需要一个名为pyenv的工具。pyenv是一个Python版本管理工具,它能够进行全局的Python版本切换,也可以为单个项目提供对应的Python版本。使用pyenv以后,可以在服务器上安装多个不同的Python版本,也可以安装不同的Python实现。不同Python版本之间的切换也非常简单。接下来我们就一起看一下pyenv的安装和使用。

1. pyenv的安装

我们直接从GitHub下载项目到本地,然后,分别执行以下命令进行安装即可:

  1. $ git clone https://github.com/yyuu/pyenv.git ~/.pyenv  
  2. Cloning into '/home/lmx/.pyenv'...  
  3. remote: Counting objects: 14458, done.  
  4. remote: Compressing objects: 100% (8/8), done.  
  5. Receiving objects: 100% (14458/14458), 2.58 MiB | 541 KiB/s, done.  
  6. remote: Total 14458 (delta 1), reused 0 (delta 0), pack-reused 14449  
  7. Resolving deltas: 100% (9938/9938), done.  
  8.  
  9. $ echo 'export PYENV_ROOT="$HOME/.pyenv">> ~/.bash_profile  
  10. $ echo 'export PATH="$PYENV_ROOT/bin:$PATH">> ~/.bash_profile  
  11. $ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile 

安装完成以后需要重新载入配置文件,或者退出以后重新登录,以使~/.bash_profile中的配置生效。笔者一般选择使用source命令重新载入配置文件,如下所示:

  1. $ source ~/.bash_profile 

至此,pyenv就安装完成了,我们可以通过下面的命令验证pyenv是否正确安装并获取pyenv的帮助信息:

  1. $ pyenv --help  
  2. Usage: pyenv <command> [<args>]  
  3.  
  4. Some useful pyenv commands are:  
  5.     commands    List all available pyenv commands  
  6.     local       Set or show the local application-specific Python version  
  7.     global      Set or show the global Python version  
  8.     shell       Set or show the shell-specific Python version  
  9.     install     Install a Python version using python-build  
  10.     uninstall   Uninstall a specific Python version  
  11.     rehash      Rehash pyenv shims (run this after installing executables)  
  12.     version     Show the current Python version and its origin  
  13.     versions    List all Python versions available to pyenv  
  14.     which       Display the full path to an executable  
  15.     whence      List all Python versions that contain the given executable  
  16.  
  17. See 'pyenv help <command>' for information on a specific command.  
  18. For full documentation, see: https://github.com/yyuu/pyenv#readme 

2. pyenv的使用

我们通过pyenv的install命令,可以查看pyenv当前支持哪些Python版本,如下所示:

  1. pyenv  install --list  
  2. Available versions:  
  3.     3.6.0  
  4.     3.6-dev  
  5.     3.7-dev  
  6.     ... 

由于pyenv可以安装的Python版本列表非常长,所以,这里进行了省略。读者可以在自己电脑上安装pyenv,然后执行pyenv install --list命令进行查看。可以看到,pyenv不但可以安装不同的Python版本,而且还可以安装不同的Python实现,也可以安装最新版本的Python用以学习。

使用pyenv安装不同的Python版本:

  1. pyenv install -v 3.6.0  
  2. pyenv install -v 2.7.13 

查看当前系统中包含的Python版本:

  1. $ pyenv versions  
  2. * system (set by /home/lmx/.pyenv/version)  
  3.     2.7.13  
  4.     3.6.0 

由于我们安装了2个Python版本,加上我们系统自身的Python,当前系统中存在3个不同的Python版本。其中,输出结果前面的“*”表示当前正在使用的版本。我们也可以通过pyenv global选择不同的Python版本,如下所示:

  1. $ pyenv global 3.6.0  
  2. $ pyenv versions  
  3.     system  
  4.     2.7.13  
  5. * 3.6.0 (set by /home/lmx/.pyenv/version)  
  6.  
  7. $ python  
  8. Python 3.6.0 (default, Feb  8 2017, 15:53:33)  
  9. [GCC 4.7.2] on linux  
  10. Type "help", "copyright", "credits" or "license" for more information.  
  11. >>> exit()  
  12. $ pyenv global 2.7.13  
  13. $ python  
  14. Python 2.7.13 (default, Feb  8 2017, 16:03:42)  
  15. [GCC 4.7.2] on linux2  
  16. Type "help", "copyright", "credits" or "license" for more information. 

使用pyenv以后,可以快速切换Python的版本。切换Python版本以后,与版本相关的依赖也会一起切换。因此,我们不用担心不同的版本在系统中是否会相互干扰。例如,切换Python版本以后,相应的pip也会跟着切换,所以不用担心自己使用的pip版本和Python版本不匹配的问题,如下所示:

  1. $ pyenv global 3.6.0  
  2. $ pip --version  
  3. pip 9.0.1 from /home/lmx/.pyenv/versions/3.6.0/lib/python3.6/site-packages (python 3.6)  
  4. $ pyenv global 2.7.13  
  5. $ pip --version  
  6. pip 9.0.1 from /home/lmx/.pyenv/versions/2.7.13/lib/python2.7/site-packages (python 2.7) 

如果想要删除Python版本,使用uninstall命令即可。如下所示:

  1. pyenv uninstall 2.7.10 

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

Java面向对象编程

Java是当前最流行的程序设计语言之一。本书以Java最新版本Java SE5为基础,涵盖了Java SE5最新特性,由浅入深地介绍了Java SE5的主要内容。...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊