python中模块、包 的相对引入与绝对引入

版权声明:CSDN 博主刘康康 https://blog.csdn.net/liiukangkang/article/details/82974486

                                            PYTHON 核心开发


 1.包和模块的定义 

        python 中的包和模块,首先是按照代码的功能进行整理整合,想相似功能的代码/大量代 码整理到一起方便统一管理 

      模块(module):python 中每个 python 文件就是一个模块,每个 python 文件中,封装 类似功能的变量、函数、类型等等,可以被其他的 python 模块通过 import 关键字引入 重复使用!

     包(pakcage):包含多个 python 文件/模块的文件夹,并且文件夹中有一个名称为__init__.py 的特殊声明文件,那么这个文件夹就是一个包(模块包),可以将大量功能相 关的 python 模块包含起来统一管理,同样也可以被其他模块通过 import 关键字引入重 复使用封装的模块和代码!

2.包和模块的复用

      python 中,将代码封装成包和模块,最主要的目的是通过有效的整理代码,提高代码的复用性能,这里整理好封装起来的包和模块的代码,就可以被其他代码引入使用了,类似生活中的工具被其他人借用一样 .

3.import引入与 from . . import 引入

包和模块的引入,通常有两个关键语法

⚫ import 包/模块  

⚫ from 包/模块 import 具体对象

 4.from import 相对引入 

首先,相对引入本身是相对当前正在操作的文件的路径

同一级路径使用符号:.

上一级路径使用符号:.. 

5. from import 绝对引入 

      绝对引入操作方式比较直接,从最外层的包的源头直接开始操作; 如:from pygame import K_A, K_S, K_D, K_W  
这种操作方式在第三方模块的操作中是司空见惯的,但是在独立的项目开发中使用较少。

 

模块

python 中的模块,指代的就是一个 Python 文件 
 
(1) 在一个 python 模块中可以包含的数据有:变量、函数、类型等等,是一个完整的 独立的代码块!

(2) 独立的一个模块中的变量:全局变量、局部变量;能被其他模块引入使用的只有当 前模块中的全局变量,其他模块对于当前模块中全局变量的操作和普通变量一致!

(3) 模块一旦被其他模块引入,就会自动执行模块中的所有代码

(4) 模块中的测试代码可以包含在 if __name__ == “__main__”: 语句块中,这 样不会再其他模块引入时执行这些测试代码 

1.python 解释器在执行处理代码时,会默认将包含 Python 文件的文件夹处理成默认包 默认包只具备文件路径关联的功能,无其他功能! 

2.python 中的标准包,是在文件夹中包含包声明文件__init__.py 的文件夹,主要包含了 一个名称为__init__.py 的模块文件,该文件夹就是一个 Python 模块包 

3.在一个 python 的包中,可以创建多个模块,统一由 python 包进行路径管理和导入方式 的管理
  

包的本地发布

# 引入构建包信息的模块
 from distutils.core import setup # 定义发布的包文 件的信息
 setup(

         name=“py1808-plane”,  # 发布的包文件名称
         version=”1.0”,   # 发布的包的版本序号
         description=” 我的测试包 ”, # 发布包的描述信息
         author=” YiFoErLiu ”,   # 发布包的作者信息
         author_email=”[email protected]”, # 作者联系邮箱信息
         py_modules=[‘__init__.py’,’..’,..]# 发布的包中的模块文件 列表
 )

执行当前程序包文件的构建操作命令:按照标准格式组织包中的所有数据文件

python setup.py build

REMARK: 构建完毕的文件
可以通过 python setup.py install命令直接当成第三方模块进行安装

执行命令进行包的打包发布 

python setup.py sdist

REMARK :打包的文件,主要是方便进行网络传输,打包之后会在 dist中创建包含包中所有信息的 tar.gz压缩包文件 ;该文件就可以通过 git等方式提交给对应的开源组织发布你的自定义模块了

包的网络发布

首先,进入http://pypi.python.org/pypi网站上,注册一个自己的账号吧! 这个网站是目前大部分 python 第三方模块集中的一个管理社区平台 
 
 
其次:你已经准备好你自己的 python 程序包,并在包中准备好了 setup.py 文件 在 setup.py 中,已经定义好了程序包的所有描述信息 
damy_users/ __init__.py moduels.py manager.py menus.py setup.py 
 
执行打包命令 
python setup.py sdist 
 
接下来: 首先安装第三方模块:twine,用于上传我们打包的项目文件 
pip install twine 上传项目 
twine upload dist/* 
 
 
此时,如果我们还需要我们自己开发的某个模块的话,直接通过 pip 命令安装即可 
pip install py1808-plane

猜你喜欢

转载自blog.csdn.net/liiukangkang/article/details/82974486