Pyenv + virtualEnv 设置
安装这两个组件是为了适应不同版本的python在同一个系统下的运行;
例如现在最明显就是python2.7和python3.6的两个版本,很多库依旧是使用了
Python2.7 但官方推荐的python3.6 当然不支持python2.7 的还是比较少的;两个版本是之间断层的,3.6 不兼容2.7的,没办法,只能这样来。
1,安装pyenv
1)安装依赖库
yum install git
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
2)安装pyenv
mkdir ~/.pyenv git clone git://github.com/yyuu/pyenv.git ~/.pyenv echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc echo 'eval "$(pyenv init -)"' >> ~/.bashrc exec $SHELL –l
3)pyenv 命令总结
详细列表:https://github.com/yyuu/pyenv/blob/master/COMMANDS.md#command-reference
常用命令如下:
- pyenv versions:查看当前 pyenv 可检测到的所有版本,处于激活状态的版本前以 * 标示。
- pyenv version:查看当前处于激活状态的版本,括号中内容表示这个版本是由哪条途径激活的(global、local、shell)
- pyenv install:使用 python-build(一个插件) 安装一个 Python 版本,到 $PYENV_ROOT/versions 路径下。建议添加 -v 参数用于显示细节。python-build 会首先尝试从一个镜像站点下载包,此时可以去 /tmp/python-build.xxx 里面关心一下下载速度
- pyenv uninstall:卸载一个版本
- pyenv rehash:为所有已安装的可执行文件 (如:~/.pyenv/versions//bin/) 创建 shims,因此,每当你增删了 Python 版本或带有可执行文件的包(如 pip)以后,都应该执行一次本命令
- pyenv global:设置全局的 Python 版本,通过将版本号写入 ~/.pyenv/version 文件的方式。
- pyenv local:设置面向程序的本地版本,通过将版本号写入当前目录下的 .python-version 文件的方式。通过这种方式设置的 Python 版本优先级较 global 高。pyenv 会从当前目录开始向上逐级查找 .python-version 文件,直到根目录为止。若找不到,就用 global 版本。
- pyenv shell:设置面向 shell 的 Python 版本,通过设置当前 shell 的 PYENV_VERSION 环境变量的方式。这个版本的优先级比 local 和 global 都要高。–unset 参数可以用于取消当前 shell 设定的版本。
2,安装pyenv-virtual
pyenv virtualenv是pyenv的插件,为UNIX系统上的Python virtualenvs提供pyenv virtualenv命令。
1)安装pyenv-virtual
$git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv $echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile $source ~/.bash_profile
2)实战例子
(1)查看可下载python版本
pyenv install –list
(2)安装3.5.3 python 版本
pyenv install –v 3.5.3
(3)查看所有版本
Pyenv versions
(4)利用virtualenv 创建3.5.3 python 环境
Pyenv virtualenv 3.5.3 env353
(5)切换到pyenv 虚拟环境
Pyenv activate env353
(6)离开环境,切换回系统环境
Pyenv deactivate
(7)删除虚拟环境
Pyenv virtualenv-delete env353