![2908cdd8611287b2ff8d12511646f94a.png](https://img-blog.csdnimg.cn/img_convert/2908cdd8611287b2ff8d12511646f94a.png)
Pipenv,它的项目简介为 Python Development Workflow for Humans,是 Python 著名的 requests 库作者 kennethreitz 写的一个包管理工具,它可以为我们的项目自动创建和管理虚拟环境并非常方便地管理 Python 包,现在它也已经是 Python 官方推荐的包管理工具。
溯源
起初,Python没有便利的方式来安装软件包。
后来,Easy Install 安装方便,但卸载不需要的软件包并不容易。
接着,pip逐渐被人们熟练的使用,其具有方便的安装和卸载等诸多优点,但当用户使用不同版本的相同库的时候。不能将软件包彼此隔离。
随着虚拟环境的发展,出现了很多管理虚拟环境的工具:virtualenv,venv,pyenv,pyenv-virtualenv等。它们都可以在pip和requirements.txt文件中很好地发挥作用。
以前我们需要将虚拟环境依赖包的导出为 requirements.txt , 一旦依赖包变动,就要重新导出,而pipenv会自动帮我们生成 Pipfile 和 Pipfile.lock ,Pipfile会随着项目,当我们安装时只需在 Pipfile 和 Pipfile.lock 所在的目录下运行 pipenv install即可。
Pipenv优点。
pipenv由requests库作者Kenneth Reitz开发,结合了pip及virtualenv的功能和优点,其目的是替代virtualenv和pyenv。
- 解决了requirements.txt依赖管理局限的不确定构建问题,提供的pipenv替代pip并自带一个依赖清单Pipfile和依赖锁定Pipfile.lock。
- 有效的的解决了多个项目依赖不同版本的子模块的问题,自动关联项目相关的virtualenv,能够快速的加载virtualenv。
- 解决了依赖分析问题,使用pipenv graph命令可以看到依赖树
- 广泛使用 Hash 校验,