作者:admin,发布日期:2019-02-06
阅读:1981;评论:0

terminal_output.png


写在开头

经常遇到这样的情况: 系统自带的python是2.x,自己需要python 3.x,此时需要在系统中安装多个python,但又不能影响系统自带的python,即需要实现python的多版本共存,pyenv就是这样一个python版本管理器。pyenv可以帮助你管理linux下的python版本及其依赖,并支持切换全局版本。

项目地址

https://github.com/pyenv/pyenv

安装

由于博主日常使用Centos7,这里就以Centos7做模板,其他版本系统可参考项目下面的说明。

首先安装git和gcc,pyenv安装时需要这两个软件做依赖

yum -y install git gcc

然后安装编译python需要的依赖(参考:https://github.com/pyenv/pyenv/wiki/Common-build-problems

yum install zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel xz xz-devel libffi-devel

按照项目文档,我们使用作者写的安装脚本一键安装

项目地址:https://github.com/pyenv/pyenv-installer

curl https://pyenv.run | bash

QQ截图20190206132611.jpg

安装完成后,我们按照提示在~/.bashrc里加入命令来支持命令提示

vim ~/.bashrc

加入以下内容,然后输入:wq!保存

export PATH="/root/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

安装完成,我们重启bash来获得命令提示

exec bash

安装第一个python版本

pyenv安装完成后,我们就可以开始安装python,这里我们安装最新版python

使用pyenv install -l 列出可安装版本

[root@ecs-cbaf ~]# pyenv install -l
Available versions:
  ...
  3.7.1
  3.7.2
  3.8-dev
  ...

开始安装

-v 显示安装过程,如果出现问题,我们可以通过安装过程看到错误。

pyenv install 3.7.2 -v

QQ截图20190206133236.jpg

QQ截图20190206133350.jpg

安装完成,我们把系统默认python版本切换到3.7.2

[root@ecs-cbaf ~]# pyenv global 3.7.2 
[root@ecs-cbaf ~]# pyenv version
version             version-file        version-file-read   version-file-write  version-name        version-origin      versions
[root@ecs-cbaf ~]# pyenv versions 
  system
* 3.7.2 (set by /root/.pyenv/version)

测试是否切换成功

[root@ecs-cbaf ~]# python -V
Python 3.7.2
[root@ecs-cbaf ~]# pip -V
pip 18.1 from /root/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pip (python 3.7)

至此,python安装成功

更新

pyenv update

卸载

删除安装目录

rm -fr ~/.pyenv

然后删除在.bashrc里加入的内容

常用命令

pyenv install --list # 列出可安装版本
pyenv install <version> # 安装对应版本
pyenv install -v <version> # 安装对应版本,若发生错误,可以显示详细的错误信息
pyenv versions # 显示当前使用的python版本
pyenv which python # 显示当前python安装路径
pyenv global <version> # 设置默认Python版本
pyenv local <version> # 当前路径创建一个.python-version, 以后进入这个目录自动切换为该版本
pyenv shell <version> # 当前shell的session中启用某版本,优先级高于global 及 local

评论区

发表评论

必填

选填

选填

必填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。