Pipenv是Kenneth Reitz在2017年1月发布的Python依赖管理工具,如今由PyPA维护。你能够把它看作是pip和virtualenv的组合体,而它基于的Pipfile则用来替代旧的依赖记录方式(requirements.txt)。python
在这篇文章里,我将会以旧的依赖管理工做流程做为对比来介绍Pipenv的基本用法,更详细的用法能够参考Pipenv文档,或是Kenneth Reitz在PyCon 2018的演讲《Pipenv: The Future of Python Dependency Management》。shell
顺便说一句,《Flask Web开发实战》中全部示例程序都使用了Pipenv进行依赖管理。npm
提示 若是你对virtualenv的用法以及虚拟环境的概念不熟悉的话,能够经过专栏的旧文《Flask出发之旅》进行简单的认识。
为何使用Pipenv
Pipenv会自动帮你管理虚拟环境和依赖文件,而且提供了一系列命令和选项来帮助你实现各类依赖和环境管理相关的操做。简而言之,它更方便、完善和安全。你能够经过Pipenv文档开头的介绍来了解它的详细特性。Pipenv的slogan是“Python Dev Workflow for Humans”,做为人类,固然应该尝试一下……安全
假设咱们要编写一个博客程序,项目的依赖是Flask和Flask-WTF。顺便说一句,可使用下面的命令安装Pipenv:app
$ pip install pipenv
之前咱们搭建虚拟环境须要学习使用virtualenv和virtualenvwrapper,在虚拟环境内管理软件依赖包须要学习使用pip, 而有了pipenv, 前面几个就能够不用学了...
之前咱们须要将虚拟环境依赖包的导出为requirements.txt, 一旦依赖包变更,就要从新导出,而pipenv会自动帮咱们生成Pipfile和Pipfile.lock, Pipfile会随着项目,当咱们安装时只需在Pipfile和Pipfile.lock所在的目录下运行pipenv install工具
前提条件: 系统已安装python2和python3学习
# 建立python3环境 pipenv --three # 建立python2环境 pipenv --two # 在上一步新建环境的目录下,运行此命令才有效 pipenv shell
pipenv install yagmail requestsui
pipenv graphcode
pipenv uninstall yagmailthree
exit
pipenv --py
查看虚拟环境所在位置
pipenv --venv
pipenv run pip freeze
pipenv install pytest --dev
pipenv sync
pipenv借鉴了npm管理包的方式, 与virtualenv和virtualenvwrapper相比, pipenv对新手要更友好一些,推荐学习~