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 # 获取虚拟环境目录路径 |
参考: