简介
Pipenv,它的项目简介为 Python Development Workflow for Humans,是 Python 著名的 requests 库作者 kennethreitz 写的一个包管理工具,它可以为我们的项目自动创建和管理虚拟环境并非常方便地管理 Python 包,我们可以简单理解为 pip、Pipfile 和 virtualenv 的集合体,它可以为我们的项目自动创建和管理一个虚拟环境。现在它也已经是 Python 官方推荐的包管理工具。
总的来说,Pipenv 可以解决如下问题:
- 我们不需要再手动创建虚拟环境,Pipenv 会自动为我们创建,它会在某个特定的位置创建一个 virtualenv 环境,然后调用 pipenv shell 命令切换到虚拟环境。
- 使用 requirements.txt 可能会导致一些问题,所以 Pipenv 使用 Pipfile 和 Pipfile.lock 来替代之,而且 Pipfile 如果不存在的话会自动创建,而且在安装、升级、移除依赖包的时候会自动更新 Pipfile 和 Pipfile.lock 文件。
- 广泛使用 Hash 校验,保证安全性。
- 可以更清晰地查看 Python 包及其关系,调用 pipenv graph 即可呈现,结果简单明了。
- 可通过自动加载 .env 读取环境变量,简化开发流程。
安装
首先请确保安装了python和对应的pip。
$ pip install pipenv
检查当前目录是否有虚拟环境
$ pipenv --venv
设置虚拟环境创建位置(可选)
设置环境变量PIPENV_VENV_IN_PROJECT=1
linux系统中可在.bash_profile或.bashrc中加入
export PIPENV_VENV_IN_PROJECT=1
windows系统就要在 控制面板 -> 系统 -> 高级系统设置 -> 高级 -> 环境变量 中添加。
创建虚拟环境
# 以当前系统安装的python版本为基础创建虚拟环境
# 先进入项目目录
$ pipenv install
# 下面的命令不推荐使用,因为这些命令并不能自动下载安装相应版本的python,而是在系统中寻找已有的python
# 创建python3的虚拟环境
$ pipenv --three
# 创建python2的虚拟环境
$ pipenv --two
# 创建具体版本的虚拟环境
$ pipenv --python 3.7
创建虚拟环境后,会在项目目录下生成两个文件Pipfile和Pipfile.lock。这两个文件是pipenv包的配置文件,代替virsualenv的requirement.txt文件。
使用版本管理工具进行项目提交时,可将Pipfile文件和Pipfile.lock文件一并提交,待其他开发克隆下载,根据此Pipfile运行命令pipenv install生成自己的虚拟环境。
Pipfile.lock文件是通过hash算法将包的名称和版本,以及依赖关系生成哈希值,可以保证包的完成性。
在控制台中激活虚拟环境
类似使用visualenv时的activate
$ pipenv shell
删除虚拟环境
$ pipenv --rm
显示虚拟环境信息
$ pipenv --venv
查看已安装包和依赖关系
$ pipenv graph
安装Python第三方模块包
$ pipenv install flask
卸载Python第三方模块包
# 卸载具体模块包
$ pipenv uninstall flask
# 卸载所有模块包
$ pipenv uninstall --all
安装所有在Pipfile.lock文件中指定的包
$ pipenv sync