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可以安装;
[vagrant@localhost ~]$ 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
即可完成安装!!
注意!!!!
这是因为在安装之前需要安装一些依赖包, 如下:
|
接着重复上一步:
pyenv install -v 3.5.0
pyenv install -v 2.7.12
安装成功!!!
卸载:
pyenv uninstall 3.5.0
可查看所有版本:
[vagrant@localhost ~]$ pyenv versions
system
2.7.12
* 3.5.0 (set by .pyenv/version)
也可以查看当前前版本:
[vagrant@localhost ~]$ pyenv version
3.5.0 (set by .pyenv/version)
可以看出,我已经安装了三个版本的python
system代表这系统版本
2.7.12和3.5.0是我用pyenv安装的
* : 表示当前的python版本
可以切换python的版本:
[vagrant@localhost ~]$ pyenv versions # 查看所有的版本 [vagrant@localhost ~]$ pyenv global 2.7.12 # 切换python版本 [vagrant@localhost ~]$ 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