pipenv 是一套 Python 用于包管理的开发环境流程,它会自动创建 virtualenv 并且生成两个依赖文件 Pipfile 、Pipfile.lock 来记录项目所需要的依赖。
当我们在 Github 上拿到一个项目,项目目录中如果包含 Pipfile 、Pipfile.lock 文件则说明项目的依赖是通过 pipenv 生成的。我们以项目 save-o-clock 为例:
https://github.com/Ex-iT/save-o-clock
项目中的 Pipfile 文件记录了所使用的 python 版本,以及从哪儿下载更新。
$ cat Pipfile[[source]]url = "https://pypi.org/simple"verify_ssl = truename = "pypi"[packages]screeninfo = "*"pywin32 = "*"[dev-packages]pyinstaller = "*"[requires]python_version = "3.9"
另一个文件 Pipfile.lock 记录了项目依赖哪些包:

在使用 pipenv 之前需要先安装 pipenv:
pip install pipenv
pipenv 可执行文件会安装至系统默认 python 的 Scripts 目录,这个目录一般会加入到 path 环境变量中。
C:\> where pipenvC:\Python\Python310\Scripts\pipenv.exe
使用当前项目所指定的 pipenv 环境,我们可以进到项目目录中执行如下命令:
pipenv install --dev

这个命令会创建一个 virtualenv 环境,然后安装项目所指定的依赖。pipenv 只有在项目目录中执行才生效,当不在项目目录中时,pipenv 的子命令提示找不到 virtualenv 环境。
当执行成功时,我们可以通过 pipenv graph 检查安装的依赖。

pipenv 在项目中的作用一个是生成 virtualenv 环境,生成的环境在 home 目录下的 .virtualenvs,每个项目环境单独生成一个 virtualenv 目录。依赖的包安装在 virtualenv 目录下。在项目目录下,激活 virtualenv 环境命令为:
pipenv shell
退出直接执行 exit 退出子shell 即可,删除当前 virtaulenv 环境,在项目目录下执行:
pipenv --rm
以上操作步骤是在已经有一个 pipenv 环境下的使用场景。正常的使用场景是使用 pipenv 生成一个指定的 virtualenv 环境,再生成项目的依赖文件:
# 安装 python 3.7 的 virtualenv 环境$ pipenv --python 3.7# 生成 Pipfile.lock$ pipenv lock
全文完。
如果转发本文,文末务必注明:“转自微信公众号:生有可恋”。




