资讯专栏INFORMATION COLUMN

python程序流程装包派发实例详细说明

89542767 / 351人阅读

  本文关键给大家介绍了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开发设计桌面应用的全流程

      当运用桌面应用程序时,有没有有一瞬间,想学习下桌面应用程序开发设计?接下来本文关键为大家介绍了有关Python使用pywebview开发设计桌面应用的资料,必须的小伙伴可以借鉴一下  序言  平时用过Eel做出来的桌面应用感觉就已经够屌了,不过因为Eel是启用Chrome,常常出现一些小毛病,例如窗口大小设定后有的时候不起作用,右键新建菜单没法禁止使用(一眼就能看出来是一个web).并且试了用...

    89542767 评论0 收藏0
  • Python使用pywebview开发设计桌面应用的全流程

      当运用桌面应用程序时,有没有有一瞬间,想学习下桌面应用程序开发设计?接下来本文关键为大家介绍了有关Python使用pywebview开发设计桌面应用的资料,必须的小伙伴可以借鉴一下  序言  平时用过Eel做出来的桌面应用感觉就已经够屌了,不过因为Eel是启用Chrome,常常出现一些小事情,例如窗口大小设定后有时不起作用,右键新建菜单没法禁止使用(一眼就能看出来就是一个web).并且试了用p...

    89542767 评论0 收藏0
  • python目录制作器普遍迭代器实例详细说明

      目录生成式基础语法  [expforiter_variniterable(ifconditional)]  基本原理:  最先迭代更新iterable里全部内容,每次迭代更新,都把iterable里对应的具体内容放在iter_var中,然后把关系式exp运用该iter_var的具体内容,依据标准进行分类  然后用关系式计算值形成一个全新的目录  先于for和if循环系统:  1、比for循环快...

    89542767 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<