简介
Pipenv,它的项目简介为 Python Development Workflow for Humans,是 Python 著名的 requests 库作者 kennethreitz 写的一个包管理工具,它可以为我们的项目自动创建和管理虚拟环境并非常方便地管理 Python 包。
Pipenv我们可以简单理解为 pip 和 virtualenv 的集合体,它可以为我们的项目自动创建和管理一个虚拟环境。virtualenv 在使用时我们需要手动创建一个虚拟环境然后激活,Pipenv 会自动创建。
总的来说,Pipenv可以解决如下问题:
- 我们不需要再手动创建虚拟环境,Pipenv会自动为我们创建,它会在某个特定的位置创建一个 virtualenv 环境,然后调用 pipenv shell 命令切换到虚拟环境。
- 使用 requirements.txt 可能会导致一些问题,所以 Pipenv使用 Pipfile 和 Pipfile.lock 来替代之,而且 Pipfile 如果不存在的话会自动创建,而且在安装、升级、移除依赖包的时候会自动更新 Pipfile 和 Pipfile.lock 文件。
- 广泛使用 Hash 校验,保证安全性。
- 可以更清晰地查看 Python 包及其关系,调用 pipenv graph 即可呈现,结果简单明了。
- 可通过自动加载 .env 读取环境变量,简化开发流程。
安装
pip install pipenv
基本命令
1. 创建环境
pipenv
或者指定具体 python 版本
pipenv --python 3.7
2. 安装依赖库
1 | pipenv intall flask # 安装依赖 |
卸载依赖
1 | pipenv uninstall |
3. 查看依赖
1 | pipenv graph # 查看目前安装的库及其依赖 |
pipenv graph
展示效果如下
1 | requests==2.19.1 |
4. 生成 Pipfile.lock 文件
1 | pipenv lock |
5. 生成 requirements.txt 文件
pipenv lock -r >requirements.txt
6. 其他命令
1 | pipenv shell # 激活当前虚拟环境,当项目根目录下有 .env 文件时,自动解析添加环境变量 |
使用规范
1. 创建虚拟环境指定 python 版本
pipenv --python 3.7
2. 指定安装源加速安装
生成虚拟环境后修改 Pipfile
文件,指定阿里云或豆瓣为安装源
1 | [[source]] |
3.
安装/增加依赖后,必须生成 Pipfile.lock
文件
pipenv update
4. (可选) 安装/变更依赖后,生成 requirements.txt 文件
pipenv lock -r > requirements.txt