当前位置: 首页 > news >正文

python---包,库,模块

python模块(Module)

一般,一个.py文件就是一个python模块。

模块可以通过import语句导入到其他 Python 文件中使用。

文件后缀

  • .py:这是最常见的 Python 模块文件扩展名。
  • .pyc:编译后的 Python 字节码文件,通常位于__pycache__目录下,用于加速程序启动。
  • .so.dll:对于 C 扩展模块,这些是共享库文件,在 Linux 上通常是.so,在 Windows 上通常是.dll
  • .pyd:在 Windows 上,C 扩展模块有时会使用.pyd扩展名。

python包

  • 是一种将多个模块组织在一起的方式。它是一个包含__init__.py文件的目录,该文件可以为空或包含初始化代码。从 Python 3.3 开始,__init__.py文件不再是必需的,但仍然推荐使用以明确表示这是一个包。

Python 包的基本概念

  1. 模块 (Module)

    • 一个.py文件就是一个模块,它可以定义函数、类、变量等。
    • 模块可以通过import语句导入到其他 Python 文件中使用。
  2. 包 (Package)

    • 包是一个目录,其中包含了多个模块文件以及一个特殊的文件__init__.py(在 Python 3.3+ 中,这个文件不再是必须的,但仍然推荐使用以初始化包的行为)。
    • 包可以包含子包和子模块,从而创建一个分层的命名空间。

创建 Python 包

要创建一个 Python 包,你需要做以下几步:

  1. 创建包目录

    • 在你的项目中创建一个目录,作为包的根目录。例如,如果你正在创建一个名为mypackage的包,你应该创建一个名为mypackage的目录。
  2. 添加__init__.py文件

    • mypackage目录中添加一个__init__.py文件。即使它是空的,这个文件的存在也告诉 Python 解释器该目录应该被视为一个包。
    • 你可以在这个文件中编写初始化代码,或者定义包级别的属性和方法。

python库

是一组相关模块和包的集合,其中可能包含很多包和模块。

文件后缀

  • .whl:Wheel 文件,是一种打包格式,简化了 Python 包的安装。
  • .tar.gz.zip:源代码分发包,通常用于发布库的源代码。
  • .egg:旧的 Python 包格式,已被 Wheel 取代。

注意:不同版本的python解释器编译 出来的库只能用在这个版本的python中使用,即使更高的版本也不能使用,否则找不到库。

区别总结

特性模块 (Module)包 (Package)库 (Library)
定义单个文件,包含 Python 代码组织多个模块的目录一组相关模块和包的集合
文件后缀.py,.pyc,.so,.dll,.pyd目录.whl,.tar.gz,.zip,.egg
组织结构独立文件包含__init__.py文件的目录多个包和模块的集合
用途提供具体的功能或接口组织和管理多个模块提供广泛的功能集,解决特定问题

规模大小顺序

从小到大:

模块------>包------>库

python指定库文件查找路径

import sys import os # 根据操作系统导入相应的模块 sys.path.append(os.path.join(os.path.dirname(os.path.realpath(__file__)), '当前路径的相对路径'))
http://www.jsqmd.com/news/460292/

相关文章:

  • java8-java17新特性总结
  • SUNFLOWER MATCH LAB C语言基础集成:嵌入式设备图像预处理
  • zzzzzzzzzz
  • Web制作网站
  • hot100——第八周
  • zzzzzz
  • 手把手教你解决FFmpeg的Segmentation fault错误:avformat_open_input返回-1330794744的终极指南
  • TerraGoat多云挑战:Azure环境下的15个高危配置错误深度剖析
  • CentOS7安装MySQL5.7踩坑实录:手把手教你解决libsasl2.so.2依赖问题(附完整rpm包下载)
  • AI购物革命:Spring Boot+大模型打造智能购物系统
  • vim-json高级配置:自定义高亮、隐藏与警告设置
  • 【训练营】基于安信可WiFi模块的物联网时钟项目实战(立创EDA)
  • Axmol Engine渲染后端全解析:Metal、OpenGL到WebGL的跨平台实现
  • 最新版Keil5 MDK的相关问题综述
  • Doris监控与调优:大数据集群性能优化全攻略
  • 嵌入式开发者的福音:Clangd跨编译器兼容性全解析(ARM GCC/IAR/Keil实测)
  • 9篇7章11节:2025年后如何使用扩展包访问、下载和分析 NHANES 数据
  • [LVGL]移植实战:v8.3 堆栈深度剖析与HardFault_Handler精准定位
  • Apache Jena开发入门:Java API使用教程与示例代码
  • 风蚀和土地沙化
  • PyQt5重装无效?LabelImg启动失败的终极解决方案(含conda环境清理指南)
  • 9篇7章12节:如何直接显示NHANES某个变量的代码本
  • 医疗影像分析新选择:用Vision Agent快速搭建X光肺炎检测系统
  • 图漾3D相机Percipio SDK安装编译 调试记录
  • 香橙派一键部署Klipper:2023最新避坑指南
  • NoC (Network on Chip) 基础 (3) : 片上网络拓扑结构的性能优化策略
  • Cisco Nexus93240接口带宽显示 超出1亿倍,原因竟然是- bug
  • 9篇7章13节:根据关键词检索NHANES变量和得到相关信息,并且通过指定URL直接下载数据
  • VMware vCenter 7.0 添加 ESXi 7.0 主机保姆级教程(附常见错误排查)
  • MySQL和SQL Server注意事项