python虚拟环境系列(一):虚拟环境出现背景及python依赖管理探索
本系列汇总,请查看这里:https://www.cnblogs.com/uncleyong/p/17947601
python虚拟环境出现背景
1、多项目:实际工作中,我们电脑上可能需要开发不同的python项目(比如:ui自动化框架、接口自动化框架、开发的其它工具或平台等)
2、依赖不同:项目需要的依赖是不一样的,比如web ui自动化需要palywrite,而接口自动化就不需要这个依赖
3、版本不同:哪怕有相同依赖,它们的版本也可能不一样,比如python版本(可能老项目还是python2.x,新项目又需要3.8以上的版本)、需要的模块版本(比如redis,不同版本使用存在差异)
4、这些带来的问题:a.生成requirement.txt会有冗余依赖;b.每次为了用某个项目就得把部分或者全部依赖调整一下,是不是很麻烦?
探索:python中是否有java中依赖解决方案呢?
熟悉java的小伙伴肯定知道,不同项目的依赖,我们可以直接在pom文件中指定依赖及其版本即可
<!-- https://mvnrepository.com/artifact/io.qameta.allure/allure-testng --> <dependency> <groupId>io.qameta.allure</groupId> <artifactId>allure-testng</artifactId> <version>2.8.1</version> </dependency>
在本地maven仓库,已经下载宿主机环境需要用到的不同版本的依赖,不同项目只需要指定需要的版本即可
但是python中呢?
我们先安装一个模块,pip install requests==2.26.0
下面提示已经安装过了,位置是d:\a_mytools\python38\lib\site-packages
site-packages目录下也可以看到requests2.26.0
我们再安装requests的2.27.0版本,pip install requests==2.27.0
下面可以看到,2.26.0被卸载了
site-packages目录下只能看到requests2.27.0,说明python不能保留多个版本的依赖
那么我们可以断定:python中没有类似java的依赖管理。
但是python可以使用虚拟环境(virtual environment),我们在宿主机上可以创建多个虚拟环境。
关于虚拟环境
就是和宿主机(本机,你的电脑)环境隔离的环境,我们可以在这个虚拟环境中安装需要的依赖及版本,它们被安装在虚拟环境自己的安装目录下(另外,py二进制文件也是独有的),也就是说,在宿主机(本机,你的电脑)环境是不能用到虚拟环境中的这些依赖的。
补充:宿主机环境上所有py项目的三方模块安装位置都是d:\a_mytools\python38\lib\site-packages
__EOF__
关于博主:擅长性能、全链路、自动化、企业级自动化持续集成(DevTestOps)、测开等
面试必备:项目实战(性能、自动化)、简历笔试,https://www.cnblogs.com/uncleyong/p/15777706.html
测试提升:从测试小白到高级测试修炼之路,https://www.cnblogs.com/uncleyong/p/10530261.html
欢迎分享:如果您觉得文章对您有帮助,欢迎转载、分享,也可以点击文章右下角【推荐】一下!