时间:2021-05-22
一、为什么要进行包管理?
python中的三方包琳琅满目,提供了各种各样的功能,使得我们免于自己去手写很多代码。比如,我们在测试接口的时候,我们用到了request,我们在测试前端页面的时候,我们用到了webdriver的包,移动UI自动化测试我们用到了airtest的包,诸如此类,不胜枚举。于是,我们在“天长地久”的使用过程中,积累的三方包越来越多,具体有多少,大家可以在命令行执行pip list看一下,数量可能超出自己的想象哦。那么现在,领导给你一个任务,让你开发一个项目,开发完之后,部署到公共的服务器上面。对于这个场景的包管理,我认为有不少人是这么做的:先在本地开发完成,然后使用pip freeze >requirements.txt生成依赖包列表文件。然后将代码放到服务器上之后,继续使用pip install -r requirements.txt在服务器上将依赖包安装好。当然,你的代码跑的66的。但是,在这个项目之前,你可能已经做了很多其他的项目,那些项目也有很多当前项目用不到的依赖包,如果不考虑环境隔离,按照上面的方式去做,当前项目的依赖包就不仅仅是当前项目的依赖包了。也就是说你当前的项目可能只需要10个三方包,你可能装了100个,严重浪费了时间和空间。另外,你的A项目使用django 1.8,另外一个B项目使用django 2.1,怎么实现呢?这种情况下,每个应用可能需要各自拥有一套“独立”的Python运行环境。virtualenv就是用来为一个应用创建一套“隔离”的Python运行环境。
综上,包管理要解决的痛点就是:
1、不必要的包的安装,浪费时间
2、项目之间的依赖包隔离
二、怎么做
1、命令行 先安装虚拟环境模块
pip3 install virtualenv # 安装virtualenv进入项目目录,创建python虚拟环境
cd haima_apivirtualenv --no-site-packages myvenv # myenv是虚拟环境名字,随便取这样我们就创建好了haima_api项目的虚拟环境,参数--no-site-packages,这样,已经安装到系统Python环境中的所有第三方包都不会复制过来。
激活虚拟环境
source myvenv/bin/activate激活之后,命令行最前面会加上一个标识。如下。
这个时候,在命令行下面执行pip install安装后的包就只会安装到刚刚创建的虚拟环境下,只和当前的项目挂钩,与其他项目无关了。
2、使用pycharm
我们开发的时候,更多会使用到pycharm这个ide,新建项目的时候选择虚拟环境即可
pycharm使用虚拟环境创建项目
inherit global site-packages:勾选上的话代表创建的新项目需要copy一份全局包到虚拟环境。
Make available to all projects:勾选上,表示,当在虚拟环境下安装包的时候,copy一份到全局。
前面文章中一只提到了全局包和虚拟环境里的包,在此解释一下他们的存放位置:
全局包存放在python安装目录下的\Lib\site-packages子目录里。
虚拟环境包安装在关联的项目目录下面的\${虚拟环境名}\Lib\site-packages子目录里
三、项目部署时批量导包
综上,python项目间的包管理就是这么easy,当你要同时开发多个项目的时候,这个是必不可少的。
到此这篇关于深入浅析pycharm中 Make available to all projects的含义的文章就介绍到这了,更多相关pycharm Make available to all projects内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文全面地给出PB自定义事件的含义,供各位PB程序员参考,好的话,大家要顶一下哦!EventID含义内容浅析//单选或多选按钮消息(前缀:pbm_bm)pbm_
前言javascript中的this,constructor,prototype,都是老生常谈的问题,深入理解他们的含义至关重要。在这里,我们再来复习一下吧,温
主页:http://craigsworks.com/projects/qtip/下载:http://craigsworks.com/projects/qtip/
前言无论是在linux还是在Unix环境中,make都是一个非常重要的编译命令。最近在调试代码,make输出信息的时候error、warning等信息都是和普通
前言无论是在linux还是在Unix环境中,make都是一个非常重要的编译命令。不管是自己进行项目开发还是安装应用软件,我们都经常要用到make或makeins