python - 内置对象 之 包

python - 内置对象 之 包,第1张

概述目录一、python包基础1.理解包2.包的导入方式3.__init__.py文件4.from包.模块import*5.包的相对和绝对导入6.导入指定位置的包7.如何导入上级目录的包二、python包封装分发 一、python包基础参考:https://blog.csdn.net/weixin_44251004/article/details/8618

目录

一、python包基础

1.理解包

2.包的导入方式

3.__init __.py文件

4.from 包.模块 import *

5.包的相对和绝对导入

6.导入指定位置的包

7.如何导入上级目录的包

二、python包封装分发


 

一、python包基础

参考:https://blog.csdn.net/weixin_44251004/article/details/86185527#_1

 

1.理解包包就是一个包含了__init__.py文件的文件夹。包只是模块的一种形式而已,包即模块。包的作用是包含多个模块,但包的本质依然是模块,因此包也可用于包含包

 

2.包的导入方式分为import和from … import …两种。但是无论哪种,导入时都必须遵循一个原则:凡是在导入时带点的,点的左边都必须是一个包,否则非法。

(1)import导入

格式:import 包名.模块名使用方法:包名.模块名.函数名

 

(2)from … import … 导入

from 包名.模块名… import 函数名from 包名.模块名… import 函数名,函数名,…from 包名 import 模块名from 包名 import 模块名,模块名1…# 注意:from后import导入的模块,必须是明确的一个不能带点,否则会有语法错误,如:from a import b.c是错误语法

 

3.__init __.py文件不管哪种导入方式,只要是第一次导入包或者是包的任何其他部分,都会依次执行包下的__init__.py文件,这个文件可以为空,但是也可以存放一些初始化包的代码。

 

4.from 包.模块 import *# 实际上该语句只会导入包目录中__init__.py里__all__的内容,如__all__=['test1']

 

5.包的相对和绝对导入绝对导入:以最顶级包作为起始相对导入:用.或者…的方式最为起始(只能在一个包中使用,不能用于不同目录内)参考 https://blog.csdn.net/weixin_44251004/article/details/86185527#_1

案例:

jutest

  |_ _ _ product

  |            |_ _   __init__.py

  |            |_ _   a12.py

  |_ _ _  tool     

  |           |_ _ mws.py

  |           |_ _ utils.py

  |           |_ _ __init__.py

  |_ _ __init__.py

  |_ _ test.py

  |_ _ test2.py

 

test.py中导入各模块的路径写法

from tool.mws import Products #导同级目录tool下的mws.py中的Product类from product.a12 import  ret    #导同级目录product下的a12.py中的ret函数from test2 import say                #导同级文件test2.py下的say函数

 

6.导入指定位置的包#在sys.path中增加指定位置

 

7.如何导入上级目录的包

直接把上级目录加到sys.path里

相对路径:sys.path.append('../')绝对路径:sys.path.append(absolute_path)

 

二、python包封装分发

参考:https://www.cnblogs.com/paisenpython/p/10329882.HTML

Python 库打包分发的关键在于编写 setup.py 文件。

setup.py编写规则是从 setuptools 或者 distuils 模块导入 setup 函数,并传入各类参数进行调用。

from setuptools import setup#from distutils.core import setup  setup(        #包名字        name='demo',             #包版本        version='1.0',        #简单描述           description='This is a test of the setup',        #作者           author='huoty',          #作者邮箱        author_email='sudohuoty@163.com',         #包的主页         url='https://www.konghy.com',         #包             packages=['demo'],                 )

 

setup 函数常用的参数

# name 包名称# version 包版本# author 程序的作者# author_email 程序的作者的邮箱地址# maintainer 维护者# maintainer_email 维护者的邮箱地址# url 程序的官网地址# license 程序的授权信息# description 程序的简单描述# long_description 程序的详细描述# platforms 程序适用的软件平台列表# classifIErs 程序的所属分类列表# keywords 程序的关键字列表# packages 需要处理的包目录(通常为包含 __init__.py 的文件夹)# py_modules 需要打包的 Python 单文件列表# download_url 程序的下载地址# cmdclass 添加自定义命令# package_data 指定包内需要包含的数据文件# include_package_data 自动包含包内所有受版本控制(cvs/svn/git)的数据文件# exclude_package_data 当include_package_data为 True时用于排除部分文件# data_files 打包时需要打包的数据文件,如图片,配置文件等# ext_modules 指定扩展模块# scripts 指定可执行脚本,安装时脚本会被安装到系统 PATH 路径下# package_dir 指定哪些目录下的文件被映射到哪个源码包# requires 指定依赖的其他包# provIDes 指定可以为哪些模块提供依赖# install_requires 安装时需要安装的依赖包# entry_points 动态发现服务和插件,下面详细讲# setup_requires 指定运行 setup.py 文件本身所依赖的包# dependency_links 指定依赖包的下载地址# extras_require 当前包的高级/额外特性需要依赖的分发包# zip_safe 不压缩包,而是以目录的形式安装

 

 

总结

以上是内存溢出为你收集整理的python - 内置对象 之 包全部内容,希望文章能够帮你解决python - 内置对象 之 包所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1186839.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存