|
|
51CTO旗下网站
|
|
移动端

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

【大咖·来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》

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
分享:
大家都在看
猜你喜欢

订阅专栏+更多

16招轻松掌握PPT技巧

16招轻松掌握PPT技巧

GET职场加薪技能
共16章 | 晒书包

289人订阅学习

20个局域网建设改造案例

20个局域网建设改造案例

网络搭建技巧
共20章 | 捷哥CCIE

645人订阅学习

WOT2019全球人工智能技术峰会

WOT2019全球人工智能技术峰会

通用技术、应用领域、企业赋能三大章节,13大技术专场,60+国内外一线人工智能精英大咖站台,分享人工智能的平台工具、算法模型、语音视觉等技术主题,助力人工智能落地。
共50章 | WOT峰会

0人订阅学习

读 书 +更多

入侵的艺术

黑客也有优劣之分。很显然对他们的奖励之一是利用黑客手段非法入侵我们公司的安全站点或个人系统。另一种奖励可能是他们的黑客行为构成了黑...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO播客