简介
Pipenv,包管理工具,可以为项目自动创建和管理虚拟环境并非常方便地管理 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 读取环境变量,简化开发流程。
安装
$ 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算法将包的名称和版本,以及依赖关系生成哈希值,可以保证包的完成性。
进入虚拟环境shell
$ pipenv shell
退出虚拟环境
exit
删除虚拟环境
$ pipenv --rm
显示虚拟环境信息
$ pipenv --venv
查看已安装包和依赖关系
$ pipenv graph
安装Python第三方模块包
$ pipenv install flask
卸载Python第三方模块包
# 卸载具体模块包
$ pipenv uninstall flask
# 卸载所有模块包
$ pipenv uninstall --all
安装所有在Pipfile.lock文件中指定的包
$ pipenv sync
查看帮助
pipenv --help
如果运行命令出错,可能是pipenv版本较老,升级下试试,
pip install pipenv –upgrade
检查模块安全性
pipenv check
删除虚拟环境中所有已安装模块,且不编辑Pipfile.lock
pipenv uninstall --all
删除一个已安装模块,且Pipfile.lock中删除
pipenv uninstall requests
创建一个新的Pipfile.lock
pipenv lock
常用命令
--where 项目文件路径
--venv 虚拟环境路径
--py 虚拟环境解释器路径
--envs 虚拟环境选项变量
--rm 删除虚拟环境
--site-packages 安装python解释器附带的包
lock 锁定并生成pipfile.lock
open 在编辑器中查看一个库
run 在虚拟环境中运行命令
update 卸载当前所有包,安装最新版本 + 模块 更新一个包
.env 文件:环境变量文件
echo "FOO=hello foo" > .env
pipenv shell
echo $FOO
参考链接:
https://my.oschina.net/u/2357619/blog/2995398