python测试开发(1) - 虚拟环境的安装和应用

为什么要安装虚拟环境

如果我们要同时开发多个应用程序的话,那么这些应用程序都会公用一个python,如果A应用使用的是flask 1.1和python3进行开发的,而B应用是通过flask2.3和python3开发的。这种情况下,每个应用都需要各自“独立”的运行环境。
virtualenv就是用来为一个应用创建一套“隔离”的python运行环境。虚拟环境的数量没有限制,可以使用virtualenv或者pipenv等工具创建多个虚拟环境

virtualenv和pipenv

virtualenv

virtualenv是目前最流行的python虚拟环境配置工具。它不仅同时支持python2和python3,而且可以为每个虚拟环境指定python解释器,并选择不继承基础版本的包
优点

1、使不同python应用的开发环境互相独立
2、开发环境升级不影响其它应用的开发环境,也不会影响全局的环境。因为虚拟环境是将全局环境进行私有的复制,当我在虚拟环境中进行pip install时,只会安装到选择的虚拟环境中
3、它可以防止系统中出现包管理混乱和版本的冲突

pipenv

pipenv是pipfile主要倡导者、requests作者Kenneth Reitz写的一个命令行工具,主要包含了Pipfile、pip、click、requests和virtualenv,能够有效管理python多个环境,各种第三方包及模块

1、pipenv继承了pip、virtualenv两者的功能,且完善了两者的一些缺陷
2、过去用virtualenv管理requirements.txt文件可能会有问题,pipenv使用pipfile和pipfile.lock,后者存放包的依赖关系,查看依赖关系十分方便
3、各个地方使用了哈希校验,无论安装还是卸载包都十分安全。且会自动公开安全漏洞
4、通过加装.env文件简化开发工作流程
5、支持python2和python3,在各个平台的命令都是一样的

virtualenv

安装虚拟环境

  • 安装 virtualenv
  • 安装虚拟环境管理包 virtualenvwrapper-win
pip install virtualenv
pip intall virtualenvwrapper-win

如果安装时,安装失败:

那么则需要加上下载源:pip install 包名 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
--trusted-host pypi.douban.com是为了获得ssl证书的认证

  • 创建一个存放虚拟环境的目录(建议命名为virtualenv)

  • 配置环境变量(变量名:WORKON_HOME,值:上面创建的目录路径)
    在这里插入图片描述
    检查
    打开cmd,输入:workon
    在这里插入图片描述

虚拟环境的一些命令

workon 列出所有的虚拟环境
workon [name] 进入指定的虚拟环境
deactivate 退出当前的虚拟环境
mkvirtualenv [name] 创建虚拟环境
rmvirtualenv [name] 删除虚拟环境
在这里插入图片描述
创建成功会自动进去虚拟环境,创建后,会在virtualenv目录下看到该虚拟环境
在这里插入图片描述
如果本地有python2和python3,可以通过指令参数 -p 指定所创建的虚拟环境的python版本

mkvirtualenv -p python2.7 [名称]

虚拟环境安装包

虚拟环境中安装对应的依赖包,进入虚拟环境直接使用pip install进行安装
在这里插入图片描述
在这里插入图片描述

虚拟环境卸载包

虚拟环境中卸载对应的依赖包,进入虚拟环境直接使用pip uninstall进行安装
在这里插入图片描述
卸载时不会将安装时所携带的依赖包一块卸载

pipenv

安装

pip install pipenv

通过命令pipenv --version检查是否安装成功

创建虚拟环境

  • 首先创建文件夹 mkdir py3env
  • 然后进入到文件夹 cd py3env
  • 再初始化虚拟环境 pipenv install。如果要指定python版本则使用指令--python VERSION
    创建好虚拟环境之后会生成:一个Pipfile文件和一个Pipfile.lock
    项目提交时,将Pipfile和Pipfile.lock文件一并提交,待其他开发克隆下载,根据此Pipfile运行命令pip install --dev生成自己的虚拟环境
    Pipfile.lock文件是通过hash算法将包的名称和版本及其依赖关系生成哈希值,可以保证包的完整性
    在这里插入图片描述
    1、将url处的地址换成:https://pypi.douban.com/simple,国内源下载地址,下载速度会快很多
    2、[packages]记录该虚拟环境所安装的所有第三方安装包
    3、[dev-packages]记录该开发环境下所安装的所有第三方安装包

pipenv管理模块和包

  • 在虚拟环境中安装模块或者包,pipenv install 包名(注意:在当前项目路径下执行以上命令)
    通过 --dev指明只安装在开发环境中(开发环境是你当前开发的环境,生产环境是上线部署的实际环境)
    在安装时,指定–dev参数,则安装在[dev-packages]下;若安装时不指定该参数,则安装在[packages]下面
  • 卸载虚拟环境的模块包 pipenv uninstall 包名
  • 查看安装包及依赖关系 pipenv graph
  • 生成requirements.txt文件 pipenv lock -r --dev > requirements.txt
  • 通过requirements.txt安装环境 pipenv install -r requirments.txt

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
卸载包使用命令pipenv uninstall 包名使用这种方法卸载对应的包之后,会更新虚拟环境下对应的记录文件。上传到生产环境,恢复运行环境时不会有对应的依赖包

因为pipenv是对pip、virtualenv进行封装的,底层还是virtualenv,所以也会在workon路径下默认生成一个虚拟环境
在这里插入图片描述

pipenv的相关使用命令

pipenv --rm删除虚拟环境
pipenv --where 列出本地工程路径
pipenv --venv 列出虚拟环境路径
pipenv --py 列出虚拟环境的python解释器信息
pipenv graph 查看包依赖
pipenv lock 生成lock文件
pipenv --shell激活虚拟环境
exit 退出虚拟环境

导出requirements.txt文件

requirements.txt文件,里面记录了当前程序的所有依赖包及版本号,其作用是用来在另一个环境上重新构建项目所需要的运行环境依赖

导出当前环境到requirements.txt

pip freeze > requirements.txt

使用requirements.txt恢复环境

pip install -r requirements.txt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值