一、pyenv简介
pyenv 主要用来管理 Python 的版本,比如一个项目需要 Python 2.x ,一个项目需要 Python 3.x 。
pyenv 通过系统修改环境变量来实现 Python 不同版本的切换。
pyenv 它并没有使用将不同的 PATH植入不同的shell这种高耦合的工作方式,而是简单地在PATH 的最前面插入了一个垫片路径(shims):~/.pyenv/shims:/usr/local/bin:/usr/bin:/bin。所有对 Python 可执行文件的查找都会首先被这个 shims 路径截获,从而使后方的系统路径失效。二、安装pyenv
1、安装pyenv依赖包
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel libpcap-devel xz-devel
yum -y install git (用于从git中下载pyenv)
2.安装pyenv
从git上面克隆下pyenv,安装完毕
git clone https://github.com/pyenv/pyenv.git
3.配置pyenv环境变量
echo 'export PYENV_ROOT="$HOME/pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
source ~/.bash_profile
4.验证pyenv安装是否成功
pyenv commands 查看pyenv命令
三、安装多版本的python
1、查看当前系统默认python版本
python --version
2、使用pyenv安装python3.5
1)查看pyenv可安装的python版本
pyenv install --list
2)安装所需python版本
pyenv install -v 版本号
pyenv install -v 3.5.2
(这个官网下载好慢,等了好几分钟)
3)查看已安装版本
pyenv versions
system 表示系统自带的版本,表示 当前正在使用的版本
每次安装完成后需要刷新py可用列表
pyenv rehash
删除已安装版本
pyenv uninstall XXXXXX
四、使用pyenv
pyenv 可以从三个维度来管理 Python 环境,简称为: 当前系统 、 当前目录 、 当前shell 。这三个维度的优先级从左到右依次升高,即 当前系统 的优先级最低、 当前shell 的优先级最高。如果想修改系统全局的Python环境,可以采用 pyenv global PYTHON_VERSION 命令。该命令执行后会在 $(pyenv root) 目录(默认为 ~/.pyenv )中创建一个名为 version 的文件(如果该文件已存在,则修改该文件的内容),里面记录着系统全局的Python版本号。
1.当前系统模式 global
pyenv global 3.5.2
2.当前目录模式 local
1)新建目录,查看当前的设定版本,提示为空
2)设置版本为3.5.2
pyenv local 3.5.2
3)取消local设置
取消当前设置的版本使用 pyenv local --unset
或者直接删除当前目录下面的 .python-version
文件
3.当前shell模式
五、安装 Pyenv-virtualenv插件
pyenv virtualenv 是pyenv的插件,为pyenv设置的python版本提供隔离的虚拟环境,设置虚拟环境后,在这某个目录下面安装的第三方库及修改库搜索路径都不会影响其他环境,相当于一个沙盒环境,互相不影响。
1.安装 pyenv-virtualenv插件
git clone git://github.com/yyuu/pyenv-virtualenv.git ./pyenv/plugins/pyenv-virtualenv
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile
source ~/.bash_profile
2.查看是否成功安装,并获取帮助
pyenv help virtualenv
source ~/.bash_profile
3.创建一个虚拟环境,py
版本设置为3.5.2
,名字为myenv
:
pyenv virtualenv 3.5.2 myenv
4.切换和使用myenv
pyenv activate myenv
5.退出myenv
pyenv deactivate
6.删除myenv