目录
一、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 - 内置对象 之 包所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)