
上QQ阅读APP看书,第一时间看更新
1.4.2 pipenv特性
常见的虚拟环境管理工具有virtualenv、virtualenvwrapper、pipenv、conda等,本节将重点讲解pipenv这个工具。
pipenv类似virtualenv,它是一种Python包管理工具,能自动处理各种工具之间的依赖关系,也能解决不同项目对于同一个工具有不同版本需求,而产生的同工具不同版本冲突的问题。pipenv就是pip和virtualenv的结合体,它的出现解决了原有的pip、virtualenv、requirements.txt的工作方式的局限和弊端,能够更有效地管理Python的多个环境、各种第三方工具。pipenv能解决的问题如下。
● requirements.txt依赖管理的局限。使用requirements.txt管理依赖的时候可能会出现版本不确定的构建问题。
● 多个项目依赖不同版本第三方工具的问题。例如,应用程序A需要特定模块的1.0版本但应用程序B需要该模块的2.0版本,当我们在A和B应用程序间切换时,需要不断检测、卸载、安装该模块。这意味着只安装一个版本的模块可能无法满足每个应用程序的要求,因此需要创建虚拟环境来将A、B应用程序所需的第三方工具包分隔开来。
pipenv很好地解决了上述的两大问题,因此具备如下特性,
● pipenv集成了pip、virtualenv两者的功能且完善了两者的一些缺陷。pipenv使用Pipfile和Pipfile.lock,这使得对工具包的管理更为明确。
● pipenv让使用者可以深入地了解第三方工具包的依赖关系图。我们使用命令pipenv graph即可查看第三方工具包的依赖关系图。