写在开头
经常遇到这样的情况: 系统自带的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
安装完成后,我们按照提示在~/.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 列出可安装版本
[[email protected] ~]# pyenv install -l Available versions: ... 3.7.1 3.7.2 3.8-dev ...
开始安装
-v 显示安装过程,如果出现问题,我们可以通过安装过程看到错误。
pyenv install 3.7.2 -v
安装完成,我们把系统默认python版本切换到3.7.2
[[email protected] ~]# pyenv global 3.7.2 [[email protected] ~]# pyenv version version version-file version-file-read version-file-write version-name version-origin versions [[email protected] ~]# pyenv versions system * 3.7.2 (set by /root/.pyenv/version)
测试是否切换成功
[[email protected] ~]# python -V Python 3.7.2 [[email protected] ~]# pip -V pip 18.1 from /root/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pip (python 3.7)
至此,python安装成功
更新
yum install zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel xz xz-devel libffi-devel
0
卸载
删除安装目录
yum install zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel xz xz-devel libffi-devel
1
然后删除在.bashrc里加入的内容
常用命令
yum install zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel xz xz-devel libffi-devel
2