pipenv是Python官方推荐的包管理工具。可以说,它集成了virtualenv, pip和pyenv三者功能。其目的旨在集合了所有的包管理工具的长处,如: npm, yarn, composer等的优点。
它能够自动为项目创建和管理虚拟环境,从Pipfile文件添加或删除安装的包,同时生成Pipfile.lock来锁定安装包的版本和依赖信息,避免构建错误。
pipenv主要解决了如下问题:
- 不用再单独使用
pip和virtualenv, 现在它们合并在一起了 - 不用再维护
requirements.txt, 使用Pipfile和Pipfile.lock来代替 - 可以使用多个python版本(
python2和python3) - 在安装了
pyenv的条件下,可以自动安装需要的Python版本
安装
pip install pipenv |
添加shell补齐
如果使用的是bash, 可添加下面语句到.bashrc或.bash_profile
eval "$(pipenv --completion)" |
配置环境变量
WORKON_HOME # 设置虚拟环境的路径,如果当前目录下已经有.venv,此项设置失效 |
使用
初始化
pipenv --three # 调用本地或pyenv创建python3的虚拟环境 |
项目目录中创建一个名为Pipfile的文件, Pipfile的基本理念是:
Pipfile文件是TOML格式而不是requirements.txt这样的纯文本。- 一个项目对应一个
Pipfile,支持开发环境与正式环境区分。默认提供default和development区分。 - 提供版本锁支持,存为
Pipfile.lock。
[[source]] |
指定安装源
[[source]] |
安装包
pipenv install <包名> |
- 当
install命令没有传递参数指定安装包时,所有[packages]里指定的包都会被安装,如果虚拟环境不存在的话,也会自动创建 - 项目目录下如果有
requirements.txt文件,那么会自动从requirements.txt文件导入安装包信息并创建一个Pipfile文件
删除包
pip uninstall <包名> |
激活虚拟环境
pipenv shell |
- 如果项目根目录下有
.env文件,激活虚拟环境会自动加载这个文件,可以通过.env设置环境变量。 - 可以配合autoenv 进入目录自动激活虚拟环境
其它
pipenv --venv # 获取虚拟环境目录路径 |
参考: