pyenv: 是针对python版本的管理, 通过修改环境变量的方式来实现.
vittualenv: 针对python包的多版本管理,通过将python包安装到一个模块来做为python的包的虚拟环境, 通过切换目录来实现不同环境间的切换.
pyenv 原理:
pyenv通过在当前shell路径$PATH进行控制实现版本及开发环境控制,在路径前面插入垫片路径(shims)(指向具体的python版本及开发项目环境),这样系统会优先调用指定的版本及开发项目环境。
添加删除版本,开发项目环境,安装包改动都要运行 "pyenv rehash”,更新垫片路径(shims)到shell系统路径。
pyenv的使用:
1, 安装pyenv
(1): 选择安装的目录; 我这里安装的是home目录.
git clone https://github.com/yyuu/pyenv.git ~/.pyenv
(2): 配置环境变量.
echo ‘export PYENV_ROOT="$HOME/.pyenv"‘ >> ~/.bash_profile echo ‘export PATH="$PYENV_ROOT/bin:$PATH"‘ >> ~/.bash_profile
(3): 添加pyenv初始化到shell环境.
echo ‘eval "$(pyenv init -)"‘ >> ~/.bash_profile
(4): 重新启动shell,是更改生效
exec $SHELL source ~/.bash_profile
2,安装某个版本的python
可以查看一下有哪些版本的python可以安装;
[[email protected] ~]$ pyenv install --list Available versions: 2.1.3 2.2.3 2.3.7 2.4 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.5 2.5.1 2.5.2 .... |
pyenv install -v 2.7.1 pyenv install -v 3.5.0
即可完成安装!!
注意!!!!
ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib? Please consult to the Wiki page to fix the problem. https://github.com/yyuu/pyenv/wiki/Common-build-problems 这是因为在安装之前需要安装一些依赖包, 如下:
|
接着重复上一步:
pyenv install -v 3.5.0 pyenv install -v 2.7.12
安装成功!!!
卸载:
pyenv uninstall 3.5.0
可查看所有版本:
[[email protected] ~]$ pyenv versions system 2.7.12 * 3.5.0 (set by .pyenv/version)
也可以查看当前前版本:
[[email protected] ~]$ pyenv version 3.5.0 (set by .pyenv/version)
可以看出,我已经安装了三个版本的pythonsystem代表这系统版本2.7.12和3.5.0是我用pyenv安装的* : 表示当前的python版本可以切换python的版本:
[[email protected] ~]$ pyenv versions # 查看所有的版本 system 2.7.12 * 3.5.0 (set by .pyenv/version) [[email protected] ~]$ pyenv global 2.7.12 # 切换python版本 [[email protected] ~]$ pyenv versions # 当前版本已经已近切换到2.7.12 |
3, 利用virtualenv创建虚拟python环境,(1)安装pyenv-virtualenv插件:
git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv echo ‘eval "$(pyenv virtualenv-init -)"‘ >> ~/.bash_profile source ~/.bash_profile
(2): 创建一个2.7.12的虚拟环境;
pyenv virtualenv 2.7.12 env2712
多环境
# 切换和使用新的python虚拟环境 $ pyenv activate env2712 $ python Python 2.7.5 (default, Nov 20 2015, 02:00:19) [GCC 4.8.5 20150623 (Red Hat 4.8.5-4)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> # 退回系统环境 $pyenv deactivate #删除新创建的环境 $rm -rf ~/.pyenv/versions/env2712