Linux如何做到Python多个版本共存

 

 

CentOS 6系统默认安装了Python2.6版本。有时候我们需要Python3时该怎么办?

本文演示利用pyenv来控制我们的Python版本。

 

开源地址

https://github.com/pyenv/pyenv

 

安装 pyenv

建议使用: https://github.com/pyenv/pyenv-installer 来直接安装。

curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash

安装完成后,根据提示将如下语句加入到 ~/.bashrc 中:

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

安装 Python

查看可安装的版本

pyenv install --list

该命令会列出可以用 pyenv 安装的 Python 版本。列表很长,仅列举其中几个:

2.7.8   # Python 2 最新版本
3.6.1   # Python 3 最新版本
3.7-dev # Python 3 开发版本
anaconda2-4.1.0  # 支持 Python 2.6 和 2.7
anaconda3-4.1.0  # 支持 Python 3.3 和 3.4

其中 2.7.8 和 3.6.1 这种只有版本号的是 Python 官方版本,其他的形如 anaconda2-4.1.0这种既有名称又有版本后的属于 “衍生版” 或发行版。

 

安装 Python 的依赖包

在编译 Python 过程中会依赖一些其他库文件,因而需要首先安装这些库文件,已知的一些需要预先安装的库如下。

yum install -y readline readline-devel readline-static
yum install -y openssl openssl-devel openssl-static
yum install -y sqlite-devel
yum install -y bzip2-devel bzip2-libs

 

 

安装指定版本

用户可以使用 pyenv install 安装指定版本的 python。

我们安装一个最新的python 试一试。

pyenv install 3.6.1
#-> Downloading Python-3.6.1.tar.xz...
#-> -> https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz
#-> Installing Python-3.6.1...
#-> Installed Python-3.6.1 to /root/.pyenv/versions/3.6.1

安装过程中,若出现编译错误,通常是由于依赖包未满足,需要在安装依赖包后重新执行该命令。

 

更新数据库

在安装 Python 或者其他带有可执行文件的模块之后,需要对数据库进行更新:

pyenv rehash

 

查看当前已安装版本

pyenv versions
#-> * system (set by /root/.pyenv/version)
#->  3.6.1

其中的星号表示当前正在使用的是系统自带的 python。

设置全局的版本

pyenv global 3.6.1

pyenv versions
#->  system
#-> * 3.6.1 (set by /root/.pyenv/version)
python -V
#-> Python 3.6.1

 

使用下面的命令即可切换回系统自带的版本

pyenv global system

 

也可以使用 pyenv localpyenv shell 临时改变 python 版本。

 

pyenv 其他功能

  1. pyenv uninstall 卸载某个版本
  2. pyenv update 更新 pyenv 及其插件

 

参考文章:http://seisman.info/python-pyenv.html

阅读剩余
THE END