python核心阶段(七)—— 包&模块以及虚拟环境

1.包&模块 概念解释

模块:为了使代码容易维护,可以将一组功能相关的代码写入一个单独的.py文件中,这

           个.py文件就被称作一个模块

包:    包是指一个有层次的文件目录结构,它包含多个相关模块或子包;

           它和目录的区别是会自动包含一个__init__.py的文件

库:    完成一定功能代码的集合,具体表现可以是一个模块,也可以是一个包 

框架: 它是一个架构层面的概念,在实际中,通过一个框架,我们可以实现解决问题的

            基本骨架,然后再对细节进行修改填充即可

  • 作用:1)作为工具代码,供其他模块使用

                  2)对代码进行分解、封装,便于维护

                  3)防止同一模块内重复命名问题

2.分类

类别使用作用
标准包/模块

自动安装,手动import导入

特例:内建包/模块(直接使用)

满足基本功能需求
三方包/模块手动下载安装满足比较复杂的功能
自定义包/模块自己定义

3.一般操作

 3.1 包/模块的创建及基本信息

创建查看基本信息
模块

直接创建.py文件

模块名称:去除.py后缀后的文件名
包名称:文件夹名

存放位置:import os                                              print(os.__file__)

查看具体内容:dir(包/模块名称)

创建一个文件夹

在文件夹中创建一个__init__.py文件

作用:创建时自动执行文件中的代码

 3.2 包/模块的导入

    3.2.1  常规导入(import)

      语法:  import 模块名  或   import 包名.模块名      (可同时导入多个模块,用逗号隔开即可)

                   我们也可以通过as语句(import 模块名 as 别名)给模块起一个别名,可以简化名称

      补充:1)调用时,需要指明包/模块的名称  模块名.xxx

                 2) 如果我们用import导入一个包,默认不会导入任何模块,我们可以通过设置__init__

                        让文件自动导入需要的模块

    3.2.2  from语句导入 

       语法:from A import B [as C]

       适用:只希望导入一个模块或者包的某一部分;或者从某个位置导入某些资源到当前位置

       补充:1)A的范围必须大于B(B必须包含在A中)           包  >  模块  >  模块中的资源

                  2)必须要保证B部分的路径最简(面向关系原则:A必须可以“看到”B)

                        包中只能看到模块,看不到具体资源,所以应该写  from 包.模块 import 资源

    3.3.3  导入模块时的底层逻辑

      1. 在被导入的包对应的命名空间(内存区域)中,执行被导入的包 / 模块中的所有代码

      2. 创建一个模块对象,并将模块内所有顶层变量(非局部变量)以属性形式绑定在模块对象上

         (这就是为什么调用这个模块中的资源需要用   模块名.函数名   因为它被包含在了对象中) 

      3. 在import的位置,引入import后面的变量名称到当前的命名空间     

导入模块时的底层逻辑

        注:在第二次导入这个模块时,会直接执行第三步

4.虚拟环境

 4.1 概念及适用场景

   虚拟环境主要是指一个完全独立的局部python环境,它能完全模拟系统全局python环境的使用。                   

   python环境 一般包含:python解释器、包管理工具等等

python真实环境
python虚拟环境

   适用场景:

例如,当前有两个项目A、B,两个项目需要依赖同一个库,但是版本不同,而默认情况下,使用的是全局python环境,即:只能安装一个库版本

    原理:

       操作系统的环境变量可以为程序提供信息和做信息交换介质,而其中PATH环境变量主要用于为操作系统和程序提供可执行文件的访问路径,当我们在命令行中执行某个程序时,操作系统就会从 PATH 所提供的路径中逐个查找

        而虚拟环境正是运用了如此性质。在激活虚拟环境时,激活脚本会将当前命令行程序的PATH 修改为虚拟环境的,这样执行命令就会在被修改的 PATH 中查找,从而避免了原本 PATH 可以找到的命令,从而实现了 Python 环境的隔离

     安装:

               在python2中需要依赖一个三方包,pip install virtualenv

               而在python3中,直接调用自带的标准库venv即可

 4.2 虚拟环境的使用方法 (cmd)

  • step1  创建一个局部的隔离的虚拟环境

        操作:

                    win + R 后输入cmd,打开命令提示符

                    然后输入 python -m venv 虚拟环境文件名

                 (这里 -m mod 是指将库模块作为脚本运行)

        venv中几个可能用得到的参数:

                    --without-pip: 不需要安装 pip,默认为安装

                    --clear:如果创建虚拟环境的目录已经有了其他虚拟环境,清楚重建

  • step2  激活虚拟环境

               在cmd中输入   虚拟环境文件名 \ Scripts \ activate

出现以上括号,说明已经成功激活虚拟环境

 

  • step3  使用虚拟环境 

              当我们激活虚拟环境之后,再进行pip install,就是安装到虚拟环境中了,更易于包的管理

              若我们希望在pycharm或其他开发工具中使用,只需将解释器换为虚拟环境的解释器即可 

              一般来说,路径为 C:\ Users \ 电脑名 \ 虚拟环境名 \ Scripts \ python.exe

  • step4  退出虚拟环境 

              只需要执行 deactivate 命令就行

  •  step5  删除虚拟环境

               找到对应虚拟文件的位置删除即可

 4.3 pycharm中虚拟环境的使用

 若已经在cmd中创建好虚拟环境,直接参考step3 使用即可

 我们也可以直接在pycharm中创建虚拟环境

pycharm中新建虚拟环境

 4.4 保存和复制虚拟环境 

  • 如何让别人使用和我们一样的虚拟环境?

step1  激活虚拟环境 

step2  输入   虚拟环境文件名 \ Scripts > pip freeze     

                      作用:将我们安装过的包以requirements的格式输出

step3  再在后面输入 > requirements.txt      以txt文件格式保存,并发送给别人

stpe4  在其他电脑配置的python环境中,

                      输入 python环境文件名 \ Scripts > pip install  -r  requirements.txt       

                      即可自动安装自己虚拟环境中已安装的包

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/238554.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于MybatisPlus批量高效插入百万条数据

引言 在JAVA程序开发中,对数据库进行大量数据插入是一个常见的操作,作为一个软件开发工程师,大批量的数据处理是日常工作,如何优化插入性能,提升数据处理效率是对大多数工程师的一个重要考验。本文将围绕逐条插入和批…

随时随地安心工作:迅软DSE保护您手机办公中的关键数据

互联网的快速发展让移动办公成为了日常工作中的一部分,同时企业数据加密的需求也已经不仅仅局限于内部终端,对于灵活的手机移动端也同样需要进行合法合规的数据安全管控。 迅软DSE数据防泄密系统提供移动端管理模块,支持Android、IOS移动客户…

BearPi Std 板从入门到放弃 - 引气入体篇(11)(SPI驱动 TFT LCD(ST7789))

简介 SPI 驱动 ST7789V2 进行字符显示, 并且使用中文库显示中文信息。主芯片: STM32L431RCT6LED : PC13 \ 推挽输出即可 \ 高电平点亮串口: Usart1 / LPUARTSPI(与LCD数据传输) : SPI2LCD_RESET(复位引脚): PC7 \ 推挽输出即可 LCD_POWER(…

通过几个基本概念说一下为什么openGauss是当下之选?

Database、Schema、User都是数据库的基本概念,SQL标准中也有明确规范。但不同数据库的具体实现也不尽相同,有些甚至大相径庭。这就导致用户在做国产化选型和数据库迁移时可能会遇到种种困难。本文从这几个基本概念展开,说说为什么openGauss系…

CHARLS CLHLS CFPS公共数据库, 最新文章|周报(12.6)

欢迎参加郑老师2023年孟德尔随机化课程即将开始 发表文章后退款!郑老师科研统计课程详情 CHARLS公共数据库 CHARLS数据库简介中国健康与养老追踪调查(China Health and Retirement LongitudinalStudy,CHARLS)是一项持续的纵向调查,旨在调查中…

Stable Diffusion Windows 部署简单认知

写在前面 偶然看到,简单了解博文为 SD 部署,以及简单使用,部署过程遇到问题解决理解不足小伙伴帮忙指正 对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。…

pnpm :无法加载文件 D:\nodejs\node_global\pnpm.ps1,因为在此系统上禁止运行脚本

目录 一、问题描述 二、原因分析 三、解决问题 一、问题描述 pnpm : 无法加载文件 D:\learningsoftware\nodejs\node_global\pnpm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID1351 70 中的 a…

大象机器人发布万元级水星Mercury人形机器人产品系列,联结未来,一触即达!

十四五机器人产业发展规划指出机器人的研发、制造、应用是衡量一个国家科技创新和高端制造业水平的重要标志。当前,机器人产业蓬勃发展,正极大改变着人类生产和生活方式,为经济社会发展注入强劲动能。 人形机器人作为机器人产业中重要的一环&…

Java异常类分类,所有子类的父类是什么

1.异常的层次机构: 所有异常的父类是Throwable,它有两个子类,分别是Error和Exception。 2.Error: 表示系统错误,通常不能处理和恢复。比如StackOverFlowError或者OutOfMemoryError,出了问题只能结束程序…

Grafana安装zabbix插件

文章目录 一、在线安装zabbix插件二、离线安装1.下载安装2.grafana配置zabbix数据源 一、在线安装zabbix插件 如果grafana服务器可以联网即可在线安装。 安装方法官网上有:官网链接联网安装比较慢。 二、离线安装 1.下载安装 官网下载链接 [rootnode1 src]# mo…

猫罐头哪个品牌好?五款性价比高的猫罐头推荐

很多新手养猫的姐妹们都会为选罐头感到焦虑!但是每种罐头都有优缺点,每只猫咪的胃口也都不同,只有适合自家猫的才是最好的。所以姐妹们在选罐头之前可以先做好功课,了解一下怎么选好的罐头。 作为家里有3只猫的铲屎官来说&#xf…

Text Intelligence - TextIn.com AI时代下的智能文档识别、处理、转换

本指南将介绍Text Intelligence,AI时代下的智能文档技术平台 Textin.com 关注TechLead,分享AI全维度知识。作者拥有10年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认…

Ubuntu 常用命令之 clear 命令用法介绍

📑Linux/Ubuntu 常用命令归类整理 clear命令在Ubuntu系统下用于清除终端屏幕的内容。这个命令没有任何参数,它的主要作用就是清理终端屏幕上的所有信息,使得屏幕看起来像是新打开的一样。 使用clear命令非常简单,只需要在终端中…

JavaScript读写15693 ICod2 卡源码

本示例使用设备 &#xff1a; https://item.taobao.com/item.htm?spma1z10.5-c-s.w4002-21818769070.11.23eb789efg450Y&id615391857885 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-t…

camera 客观校准 (1)——抓图

#灵感# 客观校准很多平台都有&#xff0c;无非是抓raw&#xff0c;导入到calibration tool 中&#xff0c;设置一些参数&#xff0c;导出相应的校准数据。抓raw的方法&#xff0c;也是大差不差。但有些地方细节容易忽略&#xff0c;所以罗列一下。 目录 blc: lsc: color: …

ELFK日志收集

文章目录 第一章:ELK日志收集系统介绍日志收集重要性ELK介绍EFK介绍ELFK介绍ES部署Kibana部署第二章:Logstach日志收集Logstash介绍Logstash安装Logstash Input输入插件Logstash Filter过滤插件Logstash Output输出插件Input fileFilter mutatesplit示例add_field示例remove_…

ATFX期市:安哥拉宣布退出OPEC,减产计划还能否彻底执行?

ATFX期市&#xff1a;昨日&#xff0c;安哥拉矿产资源、石油和天然气部长迪亚曼蒂诺阿泽维多在首都罗安达宣布&#xff0c;安哥拉决定退出OPEC&#xff0c;原因是此前OPEC第36次会议将安哥拉的产量配额设定为111万桶&#xff0c;不及安哥拉方面提出的118万桶。安哥拉的退出预计…

操作系统期末知识点总结

第一章 1、操作系统&#xff1a;OS是一个大型的系统软件、它负责计算机的全部软件和硬件资源的管理&#xff0c;并为用户提供良好的应用界面&#xff0c;使整个计算机系统实现高效率和高度自动化 2、操作系统的形成 1&#xff09;手工操作阶段 2&#xff09;批处理系统&…

Pooling方法总结(语音识别)

Pooling layer将变长的frame-level features转换为一个定长的向量。 1. Statistics Pooling 链接&#xff1a;http://danielpovey.com/files/2017_interspeech_embeddings.pdf The default pooling method for x-vector is statistics pooling. The statistics pooling laye…

爬虫工具Curl!

爬虫工具Curl&#xff01; 链接: Curl 使用它可以将网站内的信息转成python可用格式 打开开发工具中的网络选项卡右键单击&#xff08;或按住 Ctrl 键单击&#xff09;请求单击“复制”→ “复制为 cURL”粘贴到上面的curl命令框中 !!!警告&#xff1a;复制的命令可能包含 co…