python多版本管理器pyenv

  • 2019 年 12 月 22 日
  • 笔记

查看Linux版本

1[root@web ~]# cat /etc/redhat-release  2CentOS Linux release 7.6.1810 (Core)  3[root@web ~]# uname -a  4Linux web 3.10.0-957.21.3.el7.x86_64 #1 SMP Tue Jun 18 16:35:19 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

安装pyenv

1[root@web ~]# curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash

配置环境变量

1[root@web ~]# cd /root  2[root@web ~]# cp .bash_profile .bash_profile.bak  3[root@web ~]# vim .bash_profile  4#pyenv  5export PATH="~/.pyenv/bin:$PATH"  6eval "$(pyenv init -)"  7eval "$(pyenv virtualenv-init -)"  8[root@web ~]# source .bash_profile

系统自带Python版本为2.7.5

1[root@web ~]# python -V  2Python 2.7.5

安装的pyenv版本为1.2.15

1[root@web ~]# pyenv -v  2pyenv 1.2.15

升级pyenv命令

1[root@web ~]# pyenv update

查看可用的Python版本

1[root@web ~]# pyenv install --list

安装Python3.6.4、2.7.2和3.6.7

1[root@web ~]# pyenv install 3.6.4  2[root@web ~]# pyenv install 2.7.2  3[root@web ~]# pyenv install 3.6.7

查看安装的Python版本有哪些

1[root@web ~]# pyenv versions  2* system (set by /root/.pyenv/version)  3  2.7.2  4  3.6.4  5  3.6.7  6[root@web ~]#  

配置root用户的Python版本为3.6.4

1[root@web ~]# cd /root/  2[root@web ~]# pyenv virtualenv 3.6.4 root364  3[root@web ~]# pyenv activate root364  4[root@web ~]# pyenv global 3.6.4  5(root364) [root@web ~]# python -V  6Python 3.6.4

去除当前使用的virtualenv

1(root364) [root@web ~]# pyenv deactivate  2[root@web ~]# 

删除某个virtualenv

1[root@web ~]# pyenv virtualenv-delete root364  2pyenv-virtualenv: remove /root/.pyenv/versions/3.6.4/envs/root364? y  3[root@web ~]# 

设置/tmp目录的Python环境为python3.6.7

 1[root@web ~]# cd /tmp/   2[root@web tmp]# pyenv virtualenv 3.6.7 tmp367   3Looking in links: /tmp/tmpshtqhsk6   4Requirement already satisfied: setuptools in /root/.pyenv/versions/3.6.7/envs/tmp367/lib/python3.6/site-packages (39.0.1)   5Requirement already satisfied: pip in /root/.pyenv/versions/3.6.7/envs/tmp367/lib/python3.6/site-packages (10.0.1)   6[root@web tmp]# pyenv activate tmp367   7[root@web tmp]# pyenv local tmp367   8(tmp367) [root@web tmp]# python -V   9Python 3.6.7  10(tmp367) [root@web tmp]# 

在实际的生产环境中,有时候一台机器上面可能需要不同的Python环境,避免每次都要升级或者降级系统自带的Python版本,所以我们使用pyenv来管理不同的Python版本,从而提高效率。

只需要在一台服务上安装好pyenv,再去下载好需要的Python版本和所需要的依赖库,将这个pyenv环境直接打包,批量拷贝到其他服务器,解压即可切换所需要的python版本使用,省去很多琐碎的工作时间。