【技术应用】pipenv规范动作教程,呵呵!
pipenv 是Kenneth Reitz大神的作品,能够有效管理Python多个环境,各种包。过去我们一般用virtualenv搭建虚拟环境,管理python版本,但是跨平台的使用不太一致,且有时候处理包之间的依赖总存在问题;过去也常常用 pip进行包的管理,pip已经足够好,但是仍然推荐pipenv,相当于virtualenv和pip的合体,且更加强大。
pipenv 主要包含了Pipfile、pip、click、requests和virtualenv。Pipfile和pipenv本来都是Kenneth Reitz的个人项目,后来贡献给了pypa组织。Pipfile是社区拟定的依赖管理文件,用于替代过于简陋的 requirements.txt 文件。
每门编程语言发展到现在,都需要一个工具,能够管理代码版本和控制生产环境和测试环境依赖一致的,这样减少不可代码上线之后不可控的问题出现。Php有Composer、Nodejs有npm、Golang有dep。实现方式其实大同小异,一个版本list的文件,其次是一个lock的文件,锁住并缓存当前的版本列表。Python则是Pipfile和Pipfile.lock两个文件。
接下来我们就来看看pipenv的规范操作介绍:
01 安装pipenv
pip install pipenv
pip install pipenv --user [username]
--user 指定将pipenv安装在该用户主目录下
02 创建虚拟环境
cd project1
pipenv --three *会使用当前系统的默认Python3创建环境
pipenv --python 3.6.6 *会使用当前系统指定的Python3.6.6创建环境
pipenv install
pipenv install的时候有三种逻辑:
如果目录下没有Pipfile和Pipfile.lock文件,表示创建一个新的虚拟环境;
如果有,表示使用已有的Pipfile和Pipfile.lock文件中的配置创建一个虚拟环境;
如果后面带诸如django这一类库名,表示为当前虚拟环境安装第三方库。
03 激活虚拟环境
pipenv shell
激活后,查看解释器路径which python3,这时已经在虚拟环境了
04 退出虚拟环境
exit
05 安装和卸载第三方库
pipenv install gcp
使用pipenv创建虚拟环境后,进入pipfile所在目录,使用install命令安装第三方库
pipenv uninstall gcp
06 管理开发环境
通常有一些Python包只在你的开发环境中需要,而不是在生产环境中,例如单元测试包。 Pipenv使用--dev标志区分两个环境(开发和生产)。
pipenv install --dev django
django库现在将只在开发虚拟环境中使用。如果要在你的生产环境中使用下面命令安装已有的项目:
pipenv install
该命令执行后项目中并不会安装django包。
另外,如果开发人员将你的项目克隆到自己的开发环境中,他们可以使用--dev标志,将django也安装:
pipenv install --dev
也就是说一个--dev参数,帮你在同一个虚拟环境中又区分出了开发和非开发环境。
07 pipenv虚拟环境运行python命令
pipenv run python your_script.py
这将使用当前虚拟环境关联的Python解释器,执行命令。
08 其它辅助操作汇总
在使用pipenv之前,必须彻底的忘记pip这个东西。
新建一个准备当环境的文件夹pipenvtest,并cd进入该文件夹:
pipenv --where 显示目录信息
pipenv --venv 显示虚拟环境信息
pipenv --py 显示Python解释器信息
pipenv install requests 安装相关模块并加入到Pipfile
pipenv install django==1.11 安装固定版本模块并加入到Pipfile
pipenv install -r requirements.txt 通过requirements.txt安装包
pipenv graph 查看目前安装的库及其依赖
requests==2.18.4
- certifi [required: >=2017.4.17, installed: 2017.11.5]
- chardet [required: <3.1.0,>=3.0.2, installed: 3.0.4]
- idna [required: >=2.5,<2.7, installed: 2.6]
- urllib3 [required: >=1.21.1,<1.23, installed: 1.22]
pipenv check检查安全漏洞
Checking PEP 508 requirements…
Passed!
Checking installed package safety…
All good!
pipenv uninstall --all 卸载全部包并从Pipfile中移除
Found 5 installed package(s), purging…
Uninstalling certifi-2017.11.5:
Successfully uninstalled certifi-2017.11.5
Uninstalling chardet-3.0.4:
Successfully uninstalled chardet-3.0.4
Uninstalling idna-2.6:
Successfully uninstalled idna-2.6
Uninstalling requests-2.18.4:
Successfully uninstalled requests-2.18.4
Uninstalling urllib3-1.22:
Successfully uninstalled urllib3-1.22
跟上面graph命令显示的内容对应
pipenv lock 通过更新Pipfile.lock来冻结软件包名称及其版本,以及其依赖关系的列表。 这可以使用lock关键字完成的
附:pipenv执行相关参数介绍
Usage: pipenv [OPTIONS] COMMAND [ARGS]...
Options:
--update 更新Pipenv & pip
--where 显示项目文件所在路径
--venv 显示虚拟环境实际文件所在路径
--py 显示虚拟环境Python解释器所在路径
--envs 显示虚拟环境的选项变量
--rm 删除虚拟环境
--bare 最小化输出
--completion 完整输出
--man 显示帮助页面
--three / --two 使用Python 3/2创建虚拟环境(注意本机已安装的Python版本)
--python TEXT 指定某个Python版本作为虚拟环境的安装源
--site-packages 附带安装原Python解释器中的第三方库
--jumbotron 不知道啥玩意....
--version 版本信息
-h, --help 帮助信息
Commands:
check 检查安全漏洞
graph 显示当前依赖关系图信息
install 安装虚拟环境或者第三方库
lock 锁定并生成Pipfile.lock文件
open 在编辑器中查看一个库
run 在虚拟环境中运行命令
shell 进入虚拟环境
uninstall 卸载一个库
update 卸载当前所有的包,并安装它们的最新版本
- 点赞
- 收藏
- 关注作者
评论(0)