概述

在 Python 的世界中目前存在 Python 2 和 3 两个版本,虽然只有两个版本但是,版本之间还是有很多差别的,所以很难兼容,一般成熟的库都会支持两个版本,但是,在一个机器上维护多个版本的 Python 是件麻烦事,pyenv 的出现让这个麻烦事变得非常容易,本文将讲解如何在 Ubuntu 中安装 pyenv 以及使用 pyenv 管理多套 python 环境。

安装 pyenv

这里使用的是普通的用户,所以安装的时候是用 sudo 的,如果使用的 root 用户的话,需要确保你以后也是以 root 用户使用 pyenv,因为第三行和第四行是设置 pyenv 的 ROOT 目录的。

  1. [root@liqiang.io]# apt-get install git python-pip make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev
  2. [root@liqiang.io]# pip install virtualenvwrapper
  3. [root@liqiang.io]# git clone https://github.com/yyuu/pyenv.git ~/.pyenv
  4. [root@liqiang.io]# git clone https://github.com/yyuu/pyenv-virtualenvwrapper.git ~/.pyenv/plugins/pyenv-virtualenvwrapper
  5. [root@liqiang.io]# echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
  6. [root@liqiang.io]# echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
  7. [root@liqiang.io]# echo 'eval "$(pyenv init -)"' >> ~/.bashrc
  8. [root@liqiang.io]# echo 'pyenv virtua lenvwrapper' >> ~/.bashrc

一些常用命令

查看当前 pyenv 管理的版本

  1. [root@liqiang.io]# pyenv versions
  2. * system (set by /home/tyrael/.pyenv/version)
  3. 2.7.11
  4. 3.5.2

查看可安装的所有版本

  1. [root@liqiang.io]# pyenv install --list
  2. Available versions:
  3. 2.1.3
  4. ...
  5. 2.7
  6. 2.7.1
  7. ...

安装指定版本的 python

假设我希望安装 python 2.7.11 版本,那么直接敲这条命令即可:

  1. [root@liqiang.io]# pyenv install 2.7.11

安装完成之后需要对数据库进行更新:

  1. [root@liqiang.io]# pyenv rehash

设置全局的 python 版本

现在也只是 pyenv 管理了一些 python 版本,如果我们需要直接使用 python 命令来使用指定版本的 python,那么需要使用 pyenv 设置全局的 python 版本,设置命令为:

  1. [root@liqiang.io]# pyenv global 2.7.11

然后使用再敲一次命令pyenv versions 将会看到指定版本前面有个 * 号。

  1. [root@liqiang.io]# pyenv global 2.7.11
  2. [root@liqiang.io]# pyenv versions
  3. system
  4. * 2.7.11 (set by /home/tyrael/.pyenv/version)
  5. 3.5.2

然后可以使用 python version 确认 python 版本:

  1. [root@liqiang.io]# python --version
  2. Python 2.7.11

管理虚拟环境

在没有使用 pyenv 的时候,我们会使用 virtualenv 来管理包,但是,当我们使用了 pyenv 后,默认的 virtualenv 就不起作用了,因此,我们需要使用 pyenv 的扩展插件 pyenv-virtuanenv。但是我更习惯使用 virtualenvwrapper,所以这里安装是 virtualenv 的扩充版本 virtualenvwrapper。

其实在之前的安装步骤,我们也已经安装上去了,所以下面直接使用即可。

创建虚拟环境

  1. 启动 pyenv-virtualenvwrapper

    1. [root@liqiang.io]# pyenv virtualenvwrapper
  2. 创建虚拟环境

    1. [root@liqiang.io]# mkvirtualenv test
  3. 安装依赖包

    1. [root@liqiang.io]# pip install ipython
  4. 验证版本

    1. [root@liqiang.io]# ipython

然后会看到提示信息:

  1. [root@liqiang.io]# ipython
  2. Python 3.5.2 (default, Aug 27 2016, 20:30:13)
  3. Type "copyright", "credits" or "license" for more information.
  4. IPython 5.1.0 -- An enhanced Interactive Python.
  5. ? -> Introduction and overview of IPython's features.
  6. %quickref -> Quick reference.
  7. help -> Python's own help system.
  8. object? -> Details about 'object', use 'object??' for extra details.

这里是 python 3.5.2 ,没错,所以表示 virtualenvwrapper 切换成功,我们可以使用 python 3.5.2 进行一些实验了开发了。

Reference