1、背景
大家可能会经常使用virtualenv来创建虚拟环境,通过pip freeze生成requirements.txt文件,然后通过pip install -r requirements.txt安装依赖模块。其实,这样的方法还是很不错的,但也存在一些小问题:比如每次更新模块后,需要手动的重新生成依赖文件等问题。
你看过这篇博客后,我保证你会更喜欢pipenv这个工具。
1、pipenv简介
pipenv发布于2017年1月,它是一种Python依赖管理工具,你可以把它看做是pip和virtualenv的组合体,它基于Pipfile的依赖记录方式,用于替代旧的记录方式requirements.txt。pipenv会自动帮你管理虚拟环境和依赖文件,并且提供一系列命令和选项来帮助你实现各种依赖和环境管理相关的操作。简而言之,它更方便、完善和安全。
Pipenv试图解决的问题:
1、不再需要单独使用pip和使用virtualenv。
2、pipenv使用Pipfile。
3、可以详细的了解项目的依赖关系图(使用命令:pipenv graph)。
4、通过加载.env文件简化开发工作流程。
2、pipenv的安装
检查是否安装成功:pipenv --version
3、常用命令
3.1、创建虚拟环境——pipenv install
上述命令会生成Pipfile和Pipfile.lock,使用pipenv创建虚拟环境,自动生成一个随机的虚拟环境目录名。
如果在windows系统下执行命令,生成的虚拟环境在C:\Users\用户名\.virtualenvs文件夹下。
一般虚拟环境目录名的前缀是你创建环境时所在的项目目录名,如在myblog目录下执行命令,虚拟环境的目录名称就是myblog-Gtn4e1q9,后半部分为随机字符串。
如果在linux下,会在~/.local/share/virtualenvs目录下生成虚拟环境
1、首先创建工程目录(以test为例):mkdir test
2、进入test目录:cd test
3、创建虚拟环境:pipenv install
执行效果如下图所示:
3.2、**虚拟环境——pipenv shell
成功创建虚拟环境后,可以通过pipenv shell**虚拟环境,如下图所示:
3.3、安装依赖库——pipenv install requests
不管是否**虚拟环境,都可以执行pipenv install 库名来安装。
比如,安装openpyxl库,如下:
3.4、查看依赖关系——pipenv graph
3.5、卸载依赖库——pipenv uninstall requests
3.6、获取虚拟环境的位置(当前工程)——pipenv --venv
3.7、获取当前工程的根目录——pipenv --where
3.8、从requirements.txt安装依赖库——pipenv install -r requirements.txt
更详细的请参见:https://github.com/pypa/pipenv