python中包和模块的相对引入和绝对引入

										python中包和模块的相对引入和绝对引入

1.包和模块的定义

模块:python中python文件即是模块包含变量、函数、类型..代码块;
包:存放多个文件/模块的文件夹定义为包【package】,可以统一组织和管理多个python模块;
    默认包:就是一个普通文件夹【使用较少】;
    标准包:文件夹中有一个特殊的文件【包声明文件:__init__.py];

包和模块的区别:包是一个文件夹,可以包含多个文件/模块;
    模块是一个文件,包含python代码块【函数、变量、类型..】;
将文件放在一个文件的缺点:功能扩展性查,维护性差,代码耦合性高;
    耦合:依赖;    解耦合:降低代码之间的耦合度;
模块化开发:将不同功能的代码,按照功能要求划分到不同的文件中;
main.py:程序的入口,运行的地方;python main.py
utils.py:工具文件,存放各种工具函数,如事件函数、计时函数、计分函数等;
engine.py: 流程定义文件,定义游戏的启动、暂停、运行、异常处理等函数;

为什么要有包和模块:解耦合~通过多个文件协同操作,通过import关键字可以导入模块之外的其他模块,达到代码的文件级别的重复使用;
解耦合目标:提高项目功能的扩展性、代码的可维护性。

2.包和模块的复用

包和模块的引入:通过引入的方式,完成多个模块之间协同开发的目标;
    相对引入【包含了相对路径(./..)]:
        . : 表示当前文件夹/路径/目录;
       .. : 表示上一级文件夹/路径/目录;

    绝对引入:针对包/项目,从根路径直接导入的方式;

代码还原:通过代码的方式,熟悉引入的操作;

两种使用情况
1. 如果开发应用软件/内部项目:产品
    第一种引入方式使用较多,import 模块名称
    ~多人协同开发,当前模块只会在当前项目中使用。

2. 如果开发的工具软件:工具模块~pymysql/pygame
    第二种引入方式使用较多,from pygame import K_A
    ~当前开发的包,可能会被不同的项目引入使用。

操作过程中,项目开发会有很多规范
    1. 公司项目组规范
    2. 行业规范
    3. 标准规范

pycharm开发工具:会自动搜索site-packages/PYTHONPATH/sys.path路径下查询对应的模块
python解释器(CPython):自动搜索[三个标准路径+当前路径]

包的相对引入和绝对引入
    1. 相对于当前正在开发的内部项目,使用相对路径引入包进行操作
        from .model import practice1

    2. 相对于要发布到网络上的工具模块/在公司多个项目中使用的公共模块,使用绝对路径引入包的方式进行操作
        from model import practice1

正常代码块:python 代码块 为最小执行代码;

包的通配符*: 引入包中包含的所有数据[不推荐,严重浪费内存空间]

命令行执行运行代码的命令,告诉 python 解释器在执行指定路径中的 python 代码
python –m demo01.pravtice2

包和模块的相对引入,一定要切记:引入的路径相对当前文件;执行的路径相
对于引入的最外层文件夹,这样才能正确的使用相对引入操作执行我们的模块代码!

3.自定义包的发布:

1.本地发布:

在我们已经开发好的一个包文件夹下,创建一个 python 模块: setup.py
   # 引入构建包信息的模块
    from distutils.core import setup
    # 定义发布的包文件的信息
    setup(
        name="damu_pkg01",              # 发布的包文件名称
        version="1.00.001",             # 发布的包的版本序号
        description="我的测试包",        # 发布包的描述信息
        author="dkk",               # 发布包的作者信息
        author_email="961063081@qq.com",    # 作者联系邮箱信息
        py_modules=["__init__","..",..] # 发布的包中的模块文件列表
    )

    python setup.py build   # 执行当前程序包文件的构建操作命令:按照标准格式组织包中的所有数据文件;
        【可以通过 python setup.py install 命令直接当成第三方模块进行安装】
    python setup.py sdist   # 执行命令进行包的打包发布;
        【打包的文件,主要是方便进行网络传输,打包之后会在 dist 中创建包含包中
         所有信息的 tar.gz 压缩包文件;该文件就可以通过 git 等方式提交给对应的开源组织
         发布你的自定义模块】

2.网络发布:
    进入https://pypi.org/网站注册登录;
    pip install twine  安装第三方模块:twine,用于上传我们打包的项目文件

    twine upload dist/*  上传项目
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值