深入浅析pycharm中 Make available to all projects的含义


Posted in Python onSeptember 15, 2020

一、为什么要进行包管理?

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_api

virtualenv --no-site-packages myvenv # myenv是虚拟环境名字,随便取

这样我们就创建好了haima_api项目的虚拟环境,参数--no-site-packages,这样,已经安装到系统Python环境中的所有第三方包都不会复制过来。

激活虚拟环境

source myvenv/bin/activate

激活之后,命令行最前面会加上一个标识。如下。

深入浅析pycharm中 Make available to all projects的含义

这个时候,在命令行下面执行pip install安装后的包就只会安装到刚刚创建的虚拟环境下,只和当前的项目挂钩,与其他项目无关了。

2、使用pycharm

我们开发的时候,更多会使用到pycharm这个ide,新建项目的时候选择虚拟环境即可

深入浅析pycharm中 Make available to all projects的含义

pycharm使用虚拟环境创建项目

inherit global site-packages:勾选上的话代表创建的新项目需要copy一份全局包到虚拟环境。

Make available to all projects:勾选上,表示,当在虚拟环境下安装包的时候,copy一份到全局。

前面文章中一只提到了全局包和虚拟环境里的包,在此解释一下他们的存放位置:

全局包存放在python安装目录下的\Lib\site-packages子目录里。

虚拟环境包安装在关联的项目目录下面的\${虚拟环境名}\Lib\site-packages子目录里

三、项目部署时批量导包

  •  在当前虚拟环境下,通过pip freeze > requirements.txt(名字随意)
  • 在目标服务器上执行,pip install requirements.txt即可

综上,python项目间的包管理就是这么easy,当你要同时开发多个项目的时候,这个是必不可少的。

到此这篇关于深入浅析pycharm中 Make available to all projects的含义的文章就介绍到这了,更多相关pycharm Make available to all projects内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python实现指定字符串补全空格的方法
Apr 30 Python
python中快速进行多个字符替换的方法小结
Dec 15 Python
Python嵌套列表转一维的方法(压平嵌套列表)
Jul 03 Python
python项目对接钉钉SDK的实现
Jul 15 Python
详解python 利用echarts画地图(热力图)(世界地图,省市地图,区县地图)
Aug 06 Python
使用pyshp包进行shapefile文件修改的例子
Dec 06 Python
详解python 中in 的 用法
Dec 12 Python
在pytorch中实现只让指定变量向后传播梯度
Feb 29 Python
使用python-cv2实现Harr+Adaboost人脸识别的示例
Oct 27 Python
python 将html转换为pdf的几种方法
Dec 29 Python
Python 键盘事件详解
Nov 11 Python
方法汇总:Python 安装第三方库常用
Apr 26 Python
pycharm-professional-2020.1下载与激活的教程
Sep 21 #Python
有关pycharm登录github时有的时候会报错connection reset的问题
Sep 15 #Python
Pycharm Git 设置方法
Sep 15 #Python
2020版Python学习路线图(附学习资料)
Sep 15 #Python
关于Kotlin中SAM转换的那些事
Sep 15 #Python
Python二元算术运算常用方法解析
Sep 15 #Python
Python实现像awk一样分割字符串
Sep 15 #Python
You might like
Home Coffee Roasting
2021/03/03 咖啡文化
php自定文件保存session的方法
2014/12/10 PHP
JQuery中$之选择器用法介绍
2011/04/05 Javascript
基于jQuery的烟花效果(运动相关)点击屏幕出烟花
2012/06/14 Javascript
js点击更换背景颜色或图片的实例代码
2013/06/25 Javascript
jquery 倒计时效果实现秒杀思路
2013/09/11 Javascript
jquery禁用右键示例
2014/04/28 Javascript
深入理解JavaScript系列(25):设计模式之单例模式详解
2015/03/03 Javascript
JavaScript通过setTimeout实时显示当前时间的方法
2015/04/16 Javascript
js实现继承的5种方式
2015/12/01 Javascript
js实现楼层效果的简单实例
2016/07/15 Javascript
javascript中Date对象的使用总结
2016/11/21 Javascript
vue实现在表格里,取每行的id的方法
2018/03/09 Javascript
JS加密插件CryptoJS实现的Base64加密示例
2020/08/16 Javascript
超好用的jQuery分页插件jpaginate用法示例【附源码下载】
2018/12/06 jQuery
vue实现简单图片上传
2020/06/30 Javascript
Django实现自定义404,500页面教程
2017/03/26 Python
Python对文件和目录进行操作的方法(file对象/os/os.path/shutil 模块)
2017/05/08 Python
深入浅析Python中list的复制及深拷贝与浅拷贝
2018/09/03 Python
用python脚本24小时刷浏览器的访问量方法
2018/12/07 Python
Python中字符串List按照长度排序
2019/07/01 Python
python标准库OS模块详解
2020/03/10 Python
python 贪心算法的实现
2020/09/18 Python
搭建pypi私有仓库实现过程详解
2020/11/25 Python
行政部岗位职责范本
2014/03/13 职场文书
环保专项行动方案
2014/05/12 职场文书
销售活动策划方案
2014/08/26 职场文书
名人演讲稿范文
2014/09/16 职场文书
2015年宣传部部长竞选演讲稿
2014/11/28 职场文书
2015年妇幼卫生工作总结
2015/05/23 职场文书
初中信息技术教学反思
2016/02/16 职场文书
Java Shutdown Hook场景使用及源码分析
2021/06/15 Java/Android
SpringBoot 拦截器妙用你真的了解吗
2021/07/01 Java/Android
Qt自定义Plot实现曲线绘制的详细过程
2021/11/02 Python
TV动画《史上最强大魔王转生为村民A》番宣CM公布
2022/04/01 日漫
星际争霸:毕姥爷vs解冻01
2022/04/01 星际争霸