本文关键给大家介绍了python程序流程装包派发实例详细说明,感兴趣的小伙伴可以参考去了解一下,希望可以有一定的帮助,祝愿大家多多的发展,尽早涨薪。
前言
python程序编写时,部分人良好习惯可实现相同功能性的编码放到同一个文件;
使用这个编码只需import就行了;
下边看这个事例。
testModel.py classTest: name='tom' age=0 __weight=0 def__init__(self,n,a,w): self.name=n self.age=a self.__weight=w defspeak(self): print("Testmodel:",self.name,self.age,self.__weight)
然后,引入上边的编码:
importtestModel testModel.Test("tom",0,1).speak() #Testmodel:tom01 python程序流程装包 新创建一个文件夹testPackages; testPackages下新创建1个空文件__init__.py,声明书这也是一个python包 testPackages下新创建1个空文件testModel.py,用以储放函数代码 testPackages/ ├──__init__.py └──testModel.py
然后,引入上边的编码:
fromtestPackagesimporttestModel testModel.Test("tom",0,1).speak() #Testmodel:tom01
__init__.py文件的作用
__init__.py的作用是声明这也是一个包;
每一次导进包前都会先实行__init__.py,因此可以在这其中声明某些界定,例如自变量或插口;
下面我们就看这个__init__.py的应用事例
testPackages/ ├──__init__.py ├──add.py └──testModel.py
add.py
defadd(a,b): returna+b __init__.py importtestPackages.add add=testPackages.add.add
然后,引入上边的编码:
importtestPackages testPackages.add(1,2) #3
搭建python包
使用setuptools搭建python包
packaging_tutorial/
├──LICENSE
├──pyproject.toml#应用什么样的工具(pip或build)构建项目
├──README.md
├──src/
│└──example_package/
│├──__init__.py
│└──example.py
└──tests/#事例数据
pyproject.toml [build-system] requires=["setuptools>=42"] build-backend="setuptools.build_meta" setup.py是setuptool的搭建脚本,用以组装包的相关信息:名称,版本号和源代码详细地址 importsetuptools withopen("README.md","r",encoding="utf-8")asfh: long_description=fh.read() setuptools.setup( name="testPackages", version="2.2.1", author="Author", author_email="authorexample.com", description="Asmallexamplepackage", long_description=long_description, long_description_content_type="text/markdown", url="http://baidu.com/", classifiers=[ "ProgrammingLanguage::Python::3", "License::OSIApproved::MITLicense", "OperatingSystem::OSIndependent", ], package_dir={"":"src"}, packages=setuptools.find_packages(where="src"), python_requires=">=3.6", )
setup()主要参数:
package_dir:辞典,key是包名,value是一个文件夹;
packages:派发包必须导进的所有控制模块目录;能够手工录入,也可以用find_packages函数全自动探寻package_dir下的所有包或控制模块。
形成派发包
python3setup.pysdist
当地组装
python3-mpipinstall./dist/testPackages-2.2.1.tar.gz
启用
fromtestPackagesimportadd add.add(1,2) #3 #在__init__.py搭建了add=testPackages.add.add,因此可以直接用 add(1,2) #3
综上所述,这篇文章就给大家介绍到这里了,希望可以给大家带来帮助。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/128855.html
当运用桌面应用程序时,有没有有一瞬间,想学习下桌面应用程序开发设计?接下来本文关键为大家介绍了有关Python使用pywebview开发设计桌面应用的资料,必须的小伙伴可以借鉴一下 序言 平时用过Eel做出来的桌面应用感觉就已经够屌了,不过因为Eel是启用Chrome,常常出现一些小毛病,例如窗口大小设定后有的时候不起作用,右键新建菜单没法禁止使用(一眼就能看出来是一个web).并且试了用...
当运用桌面应用程序时,有没有有一瞬间,想学习下桌面应用程序开发设计?接下来本文关键为大家介绍了有关Python使用pywebview开发设计桌面应用的资料,必须的小伙伴可以借鉴一下 序言 平时用过Eel做出来的桌面应用感觉就已经够屌了,不过因为Eel是启用Chrome,常常出现一些小事情,例如窗口大小设定后有时不起作用,右键新建菜单没法禁止使用(一眼就能看出来就是一个web).并且试了用p...
目录生成式基础语法 [expforiter_variniterable(ifconditional)] 基本原理: 最先迭代更新iterable里全部内容,每次迭代更新,都把iterable里对应的具体内容放在iter_var中,然后把关系式exp运用该iter_var的具体内容,依据标准进行分类 然后用关系式计算值形成一个全新的目录 先于for和if循环系统: 1、比for循环快...
阅读 889·2023-01-14 11:38
阅读 833·2023-01-14 11:04
阅读 684·2023-01-14 10:48
阅读 1887·2023-01-14 10:34
阅读 890·2023-01-14 10:24
阅读 750·2023-01-14 10:18
阅读 479·2023-01-14 10:09
阅读 519·2023-01-14 10:02