余苏明的幻想乡

利用pyenv和virtualenv搭建多版本pyhton虚拟环境

写在前面

之前看到python公众号一篇文章,说建议2020年之后停止python2版本的维护,转移到python3上,但是现在大多数还是使用的python2,所以如果转移到python3上要进行python3的学习,免不了要在机器上安装多个版本的python,这时候如何使各个版本相互独立是个问题。
所以在网上找了一下资料.http://www.it165.net/pro/html/201405/13603.html

安装pyenv和pyenv-virtualenv

使用下面命令进行安装

1
curl https://raw.github.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash

这个里面集成了pyenvpyenv-virtualenv插件
也可以参照github上官方pyenv
pyenv-virtualenv
安装

配置环境变量

  1. 将下面配置写入到~/.bash_profile文件

    1
    2
    3
    4
    5
    6
    export PYENV_ROOT="${HOME}/.pyenv"
    if [ -d "${PYENV_ROOT}" ]; then
    export PATH="${PYENV_ROOT}/bin:${PATH}"
    eval "$(pyenv init -)"
    fi
  2. 或者 执行下面语句(使用官方配置)

    1
    2
    3
    4
    echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
    echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
    echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
    echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile

注意:ubuntu和Fedora系统是写入到~/.bashsrc文件

  1. 使配置文件生效
    可以选择退出登陆再登陆,也可以使用source ~/.bash_profile命令来重新加载环境变量

安装多个python版本

使用pyenv可以安装多个版本。
先查看可以安装的版本

1
pyenv install --list

找到自己想要安装的版本号

1
2
pyenv install 2.7.12
pyenv install 3.5.2

安装完毕后使用pyenv versions查看所有版本
使用pyenv version查看当前激活版本

切换版本测试

使用pyenv global 2.7.12,就切换版本到2.7.12了
使用pyenv global system切换回系统版本
卸载某个版本,使用pyenv uninstall 2.7.12就卸载了2.7.12的版本

利用virtualenv创建虚拟环境

virtualenv是一个独立的程序,可以使用sudo pip install virtualenv下载安装
使用上面步骤安装的pyenv则自带virtualenv插件,不用安装。

先来创建一个2.7的环境

1
2
pyenv virtualenv 2.7.12 env2.7.12
# env2.7.1是标识,可以随便取,自己方便记就行

表示创建了一个虚拟环境,evn2.7.12

使用pyenv activate evn2.7.12将切换到evn2.7.12虚拟环境中,会看到前面出现了(evn2.7.12)标识,表示在虚拟环境中,在此环境中可以随便修改,而不用担心搞乱系统版本.

要想切换回系统环境,使用 pyenv deactivate就可以退出虚拟环境.
如果想要删除虚拟环境,直接使用

1
rm -rf ~/.pyenv/versions/env2.7.12/

就可以删除