pipenv

新一代Python项目环境与依赖管理工具

之前一直用的是python -m venv <虚拟环境名称>来创建虚拟环境,这样做的缺点是太麻烦了,因为创建之后还要进去激活虚拟环境。更麻烦的是还要手动创建依赖(requirements.txt),更新依赖。

看到这个pipenv之后发现应该挺好用的,准备试一试。

  1. 安装Pipenv

pip install pipenv

  1. 创建虚拟环境

pipenv install
Pipenv会自动为你创建虚拟环境,自动生成一个随机的虚拟环境目录名。

  1. 显式激活虚拟环境

pipenv shell
此外,Pipenv还提供了一个pipenv run命令,在该命令后附加的参数会直接作为命令在虚拟环境中执行,这允许你不必显式的激活虚拟环境即可在虚拟环境中执行命令。比如,pipenv run python会启动虚拟环境中的Python解释器。

  1. 安装依赖到虚拟环境

pipenv install flask
事实上,对一个新项目来说,你不必手动使用pipenv install来创建虚拟环境。当使用pipenv install xxx直接安装依赖包时,如果当前目录不包含虚拟环境,Pipenv会自动创建一个。

  1. 记录依赖

使用Pipenv时,什么都不必做,Pipenv会自动帮你管理依赖。Pipenv会在你创建虚拟环境时自动创建Pipfile和Pipfile.lock文件(如果不存在),前者用来记录项目依赖包列表,而后者记录了固定版本的详细依赖包列表,会在你使用pipenv install和pipenv uninstall命令安装和卸载包时自动更新Pipfile和Pipfile.lock。
Pipfile 文件中记录了3件事情:
1.包从哪里下载的
2.需要下载哪些包, * 表示始终下载最新版本, dev-packages 表示专用于开发阶段使用的包。
3.Python 版本是多少
Pipfile.lock 文件详细记录了这些包的信息,包括这个包的hash值多少,还有包所依赖的其他包有哪些。
把这些信息写在 Pipfile 文件中的好处是,当我们把项目部署到正式环境时,不再需要一个一个去安装了,直接执行 pipenv install 就会自动创建虚拟环境的同时,把 Pipfile 中包都安装好。

  1. 项目环境迁移部署
    把原环境的Pipfile Pipfile.lock文件拷贝到新环境中,直接如下执行即可

pipenv install

  1. 区分依赖

pipenv install pytest --dev
仅安装在开发环境

  1. 列出当前虚拟环境的依赖包

pipenv graph

9.生成依赖包

pipenv lock -r > requirements.txt

  1. 使用 requirements.txt 来安装包依赖

pipenv install -r requirements.txt

  1. 删除虚拟环境

pipenv --rm

  1. vscode 配置pipenv虚拟环境

https://segmentfault.com/a/1190000017558652
13.有时候手动改了 Pipfile 之后需要手动执行一下 lock 命令来生成新的 Pipfile.lock
pipenv lock

posted @ 2019-03-29 10:04  P_PlusUltra  阅读(288)  评论(0编辑  收藏  举报