# pyenv
pipenv与pyenv、pyenv-virtualenv的关系和使用
为什么要有版本管理
我们举个例子:
- 项目一要求用python 2.x
- 项目二要去python 3.x
如果服务器上要运行这两个项目,就需要安装两个版本。如果项目更多,需要的版本也越多,我们就需要有版本管理的概念。
为什么要有虚拟版本
上面我们看到,版本管理解决了,不同项目对python版本的需求。如果我们服务器上有增加了一个项目,情况如下,如果解决呢
- 项目一要求用python 2.x
- 项目二要去python 3.x,要求导入的requests包是1.x
- 项目三要去python 3.x,要去导入的requests包是2.x
我们看到项目二和项目三要去的是同样的版本,但是依赖的包是不同版本的,我们无法在一个版本上,同一个包安装不同的版本。这样容易造成混乱。因此就需要虚拟环境了。虚拟环境就是在所需的版本上,创建一个副本,在副本里进行依赖包的管理,这样不同的项目用自己的副本,就不会相互干扰。