首页 > 编程语言 >python中的包和模块(非常详细),零基础入门到精通,看这一篇就够了

python中的包和模块(非常详细),零基础入门到精通,看这一篇就够了

时间:2024-11-25 12:05:05浏览次数:11  
标签:入门 python 模型 就够 install 导入 模块 pip import

文章目录

一、包与模块

Python 中除了函数库以外,还有非常多且优秀的第三方库、包、模块。

  • 模块Module:.py 为后缀的文件,称之为 模块
  • 包Package: 即文件夹,传统包里有一个 __init__.py 文件。可以为空文件,但一定要有该文件,它是包的标志性文件,在需要情况下可以在里面进行一些包的初始化工作。
  • 库:一定功能的代码集合

库->包->模块,是从大到小的层级关系:

  • 库:一个库可能由多个包和模块组成

  • 包:一个包可能由多个模块组成

  • 模块:一堆函数、类、变量的集合

(1)模块

假设有一个demo.py文件(也即是模块),代码如下:

name="Python编程时光"
print("导入成功")

使用 import 语句就可以导入demo模块,导入之后,就可以使用 模块名.变量名 的方式访问这个变量。

import demo    #执行此语句就会输出:导入成功

print(demo.name)  # 输出:Python编程时光

当该模块被导入后,会在当前目录下产生一个 叫做 __pycache__ 的缓存文件夹。

  • 导入模块的时候,Python解释器会把模块的代码编译成字节码,并放入 __pycache__文件夹中。
  • 再次运行的话,如果被调用的模块未发生改变,那就直接跳过编译这一步,直接去__pycache__文件夹中去运行相关的 *.pyc 文件,大大缩短了项目运行前的准备时间。

(2)包

传统包里的 __init__.py 可以为空文件,但一定要有该文件,它是包的标志性文件,在需要情况下可以在里面进行一些包的初始化工作。

一个包里可以有多个模块,比如上面的 foo.pybar.py 都属于 demo 模块

import demo.foo    #方式一
import demo.bar

from demo import foo       #方式二

当我们 import 导入模块或包时,Python 提供两种导入方式:

  • 相对导入(relative import ):from . import B 或 from …A import B,其中.表示当前模块,…表示上层模块

  • 绝对导入(absolute import):import foo.bar 或者 from foo import bar(标准推荐)

二、第三方包的安装

2.1 pip install

pip 是最主流的包管理方案,使用 pip install xxx 就可以从 PYPI 上搜索并安装 xxx (如果该包存在的话)。

一些安装示例:pip的更多使用方法

pip install requests

# 前提你得保证你已经下载 pkg 包到 /local/wheels 目录下
pip install --no-index --find-links=/local/wheels pkg

# 所安装的包的版本为 2.1.2
pip install pkg==2.1.2

# 所安装的包必须大于等于 2.1.2
pip install pkg>=2.1.2

# 所安装的包必须小于等于 2.1.2
pip install pkg<=2.1.2
2.2使用 curl + 管道

一些第三方工具包提供的安装方法,是直接使用 curl 配置管道来安装,比如上面提到的 poetry 就可以用这种方法安装。

 curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python
2.3其他安装方法

第三方包的其他安装方式

三、导入单元的构成

导入的单元可以是:模块(单个文件)、包、变量、库等

模块:类似 *.py,.pyc, *.pyd ,.so,*.dll 这样的文件,是 Python 代码载体的最小单元

Python 提供两种导入方式:

  • 相对导入:from . import B 或 from …A import B,其中.表示当前模块,…表示上层模块**(python2.6之前的版本常使用的方式)**

  • 绝对导入:import foo.bar 或者 from foo import bar**(python2.6之后的版本常使用的方式)**

导入的注意事项:

  • import语句应该分行写入,避免用逗号分隔,出现一行多个的情况
  • 绝对导入: 如:from foo.bar import test
  • import 放文件头部,置于模块说明及docstring之后,全局变量之前
  • import导入顺序:内置模块、第三方库、本地模块
3.1pip的使用

(1)查询软件包

  1. 查看当前环境安装的所有软件包: pip list
  2. 查询 pypi 上含有某名字的包: pip search pkg
  3. 查询当前环境中可升级的包:pip list --outdated
  4. 查询一个包的详细内容: pip show pkg

(2)下载软件包

(3)安装软件包

pip install 包名

  1. 指定版本安装:
# 所安装的包的版本为 2.1.2
pip install pkg==2.1.2

# 所安装的包必须大于等于 2.1.2
pip install pkg>=2.1.2

# 所安装的包必须小于等于 2.1.2
pip install pkg<=2.1.2
  1. 管理控制整个python环境的包版本
# 导出依赖包列表
pip freeze >requirements.txt

# 从依赖包列表中安装
pip install -r requirements.txt

# 确保当前环境软件包的版本(并不确保安装)
pip install -c constraints.txt

(4)升级软件包

pip install --upgrade pkg

(5)配置文件

由于pip安装包时,默认使用pip官方源,经常会出现网络超时失败的情况,因此我们需要使用国内镜像源来解决:将镜像源配置到pip配置文件中,就省去了每次手动配置镜像源的麻烦:

查找配置文件: 使用win+r 输入 %APPDATA% 进入用户资料文件夹,查看有没有一个 pip 的文件夹,若没有则创建pip文件夹,然后新建一个配置文件pip.ini。(镜像源可更换,选择速度较快的即可)

pip的配置文件(pip.ini):

[global]
time-out=60
index-url=https://pypi.tuna.tsinghua.edu.cn/simple/
[install]
trusted-host=tsinghua.edu.cn

(6)pip常用的命令:

参考链接:下图参考链接

3.2模块的缓存

重复导入相同的模块,不会执行多次,只会执行一次导入操作。因为 sys.modules 的存在,会扫描当前是否已经存在该模块。sys.modules 是一个字典(key:模块名,value:模块对象),它存放着在当前 namespace 所有已经导入的模块对象。

3.3源码包与二进制包

Python 包的分发可以分为两种:源码包、二进制包

  1. 源码包本质是压缩包,常见的格式有:(.zip)、(.tar.gz)、(.tar.bz)、(.tar.z)、(.tar)
  2. 二进制包省去了编译的过程,直接可解压安装,安装较快。但是不同平台变异的包不同,不通用。常见的格式有:egg(.egg)、wheel(.whl)

Wheel 的出现是为了替代 Egg,它的本质是一个zip包

Wheel 和 Egg 的主要区别:

  • Wheel 有一个官方的 PEP427 来定义,而 Egg 没有 PEP 定义

  • Wheel 是一种分发格式,即打包格式。而 Egg 既是一种分发格式,也是一种运行时安装的格式,并且是可以被直接 import

  • Wheel 文件不会包含 .pyc 文件

  • Wheel 使用和 PEP376 兼容的 .dist-info 目录,而 Egg 使用 .egg-info 目录

  • Wheel 有着更丰富的命名规则。

  • Wheel 是有版本的。每个 Wheel 文件都包含 wheel 规范的版本和打包的实现

  • Wheel 在内部被 sysconfig path type 管理,因此转向其他格式也更容易

wheel 包可通过 pip 安装,需要先安装 wheel 模块,然后再使用 pip 的命令:

pip install wheel
pip wheel --wheel-dir=/local/wheels pkg

四、setup.py 的编写

零基础入门AI大模型

今天贴心为大家准备好了一系列AI大模型资源,包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

有需要的小伙伴,可以点击下方链接免费领取【保证100%免费

点击领取 《AI大模型&人工智能&入门进阶学习资源包》

1.学习路线图

在这里插入图片描述

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

2.视频教程

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己整理的大模型视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。

在这里插入图片描述

在这里插入图片描述

(都打包成一块的了,不能一一展开,总共300多集)

3.技术文档和电子书

这里主要整理了大模型相关PDF书籍、行业报告、文档,有几百本,都是目前行业最新的。
在这里插入图片描述

4.LLM面试题和面经合集

这里主要整理了行业目前最新的大模型面试题和各种大厂offer面经合集。
在这里插入图片描述

标签:入门,python,模型,就够,install,导入,模块,pip,import
From: https://blog.csdn.net/weixin_49895216/article/details/144023735

相关文章

  • Qwen2大模型微调入门实战,零基础入门到精通,收藏这一篇就够了
    Qwen2大模型微调入门实战Qwen2是通义千问团队最近开源的大语言模型,由阿里云通义实验室研发。以Qwen2作为基座大模型,通过指令微调的方式做高精度文本分类,是学习LLM微调的入门任务。在本文中,我们会使用Qwen2-1.5b-Instruct模型在复旦中文新闻数据集上做指令微调训练,同......
  • 信息安全专业哪个方向发展比较好?(非常详细),零基础入门到精通,看这一篇就够了
    前言关于开发、评估、加固、审计、密码学之类的,信息安全专业目前向哪个方向发展比较好?这边推荐密码学方向密码学方向工作岗位一般都在大厂实验室,例如天融信的天璇实验室、阿尔法实验室等。技术水平相当,学历高薪资起点就高,未来的升职空间也更广。一、可从事岗位:(1)逆向工......
  • vite.config.js配置入门详解
    一,搭建vite项目兼容性注意:Vite需要 Node.js 版本14.18+,16+。然而,有些模板需要依赖更高的Node版本才能正常运行,当你的包管理器发出警告时,请注意升级你的Node版本。通过下面的命令行可以创建指定项目名称和你想要使用的模板的vue项目#npm6.xnpmcreatevite@......
  • 【WPF】入门学习
     一、学习资源: WPF中文网:https://www.wpfsoft.com/ VisualStudio2022:https://visualstudio.microsoft.com/zh-hans/vs/ VS2022 激活密钥:https://www.cnblogs.com/soarowl/p/18200602学习参照教程:https://www.bilibili.com/video/BV1mJ411F7zG二、VS2022激活:【帮助】......
  • C#入门简介
    文章目录前言一、起源与发展背景二、开发环境搭建VisualStudioVisualStudioCode三、C#的特性面向对象编程(OOP)特性类型安全自动内存管理(垃圾回收)四、应用领域Windows桌面应用开发游戏开发企业级应用开发移动应用开发(借助Xamarin)五、与其他语言的比较与Java的比......
  • python-爬虫入门指南
    前言:由于个人负责的运维组,其中有个同事每回在某个项目发版更新后,需手动在k8s容器平台web界面上复制出几百个微服务的名称以及镜像版本等信息,用来更新微服务清单,个人决定抽时间写个爬虫脚本自动完成手动执行的任务。由于公司信息需保密,这里介绍个简单入门的爬虫脚本做为范例......
  • OpenCV-Python 特征匹配
    37.1Brute-Force匹配的基础蛮力匹配器是很简单的。首先在第一幅图像中选取一个关键点然后依次与第二幅图像的每个关键点进行(描述符)距离测试,最后返回距离最近的关键点。对于BF匹配器,我们首先要使用cv2.BFMatcher()创建一个BFMatcher对象。它有两个可选参数。第......
  • 从零开始学习黑客技术,看这一篇就够了
    ......
  • 从零开始学习黑客技术,看这一篇就够了
    ......
  • Figma入门-文字、样式、链接、动作
    Figma入门-文字、样式、链接、动作前言在之前的工作中,大家的原型图都是使用Axure制作的,印象中Figma一直是个专业设计软件。最近,很多产品朋友告诉我,很多原型图都开始用Figma制作了,并且很多组件都是内置的,对各种原型图的制作及其友好,只需熟悉一下基本的操作即可上手。......