当前位置: 首页 > 编程笔记 >

简单了解如何封装自己的Python包

后安民
2023-03-14
本文向大家介绍简单了解如何封装自己的Python包,包括了简单了解如何封装自己的Python包的使用技巧和注意事项,需要的朋友参考一下

将自己的程序打包为whl/tar.gz文件

有时候自己写了一个开发基本类,我们把这个类打包为whl或者tar.gz文件,这样的话同事也可以使用自己开发的基本类了

安装setuptools

pip install setuptools

编写setup.py及__init__.py文件(init.py内容可以为空)

注意目录结构

packages/
 __init__.py
 自己的文件.py
setup.py
Readme.txt

setup.py文件内容

from setuptools import setup
setup(name='dingding-py',
   version='0.0.2',
   description='this is a dingdingbot packages',
   author='Jruing',
   author_email='1099301992@qq.com',
   packages=['Qingolddriver']

   )

除了上面示例中的几个参数以外还有其他的

  • name : 打包后包的文件名
  • version : 版本号
  • author : 作者
  • author_email : 作者的邮箱
  • py_modules : 要打包的.py文件
  • packages: 打包的python文件夹
  • include_package_data : 项目里会有一些非py文件,比如html和js等,这时候就要靠include_package_data 和 package_data 来指定了。package_data:一般写成{‘your_package_name': [“files”]}, include_package_data还没完,还需要修改MANIFEST.in文件.MANIFEST.in文件的语法为: include xxx/xxx/xxx/.ini/(所有以.ini结尾的文件,也可以直接指定文件名)
  • license : 支持的开源协议
  • description : 对项目简短的一个形容
  • ext_modules : 是一个包含Extension实例的列表,Extension的定义也有一些参数。
  • ext_package : 定义extension的相对路径
  • requires : 定义依赖哪些模块
  • provides : 定义可以为哪些模块提供依赖
  • data_files :指定其他的一些文件(如配置文件),规定了哪些文件被安装到哪些目录中。如果目录名是相对路径,则是相对于sys.prefix或sys.exec_prefix的路径。如果没有提供模板,会被添加到MANIFEST文件中。

打包

进入到setup.py所在目录执行以下命令

python setup.py bdist_wheel #打包为whl文件
python setup.py sdist #打包为tar.gz文件

打包后在dist目录下就可以找到打包后的文件

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍自己封装的一个简单的倒计时功能实例,包括了自己封装的一个简单的倒计时功能实例的使用技巧和注意事项,需要的朋友参考一下 因为平常工作中很常用到该功能,所以就利用这次国庆假期,重新梳理与对原有代码进行改善,再集成一个常用的功能,最终封装出这个“简单倒计时”功能。 该倒计时方法具有以下该功能: 1. 根据指定日期与当前的电脑时间进行匹配 2. 通过指定一个数组参数,来设置在每一天内不同的时

  • 本文向大家介绍Python实现封装打包自己写的代码,被python import,包括了Python实现封装打包自己写的代码,被python import的使用技巧和注意事项,需要的朋友参考一下 1.新建一个文件夹example,里面放入要打包的.py文件,以及必需的_init_.py. 代码如下: 内部代码无需修改。 2.与文件夹同目录放入必需的setup.py文件。 代码如下: 注意:name

  • 我在Python文件中定义了几个类。我知道我可以将它导入到给定的脚本中,只要该文件与我的脚本位于同一目录中;但是,我希望能够将该文件作为软件包安装,这样我就可以导入它,而不必每次使用它时都将其放在当前目录中。 本质上,有没有一种方法来pip安装你自己编写的包,这样它就可以在Python脚本中导入,而不存在于与脚本相同的目录中?

  • 本文向大家介绍封装属于自己的JS组件,包括了封装属于自己的JS组件的使用技巧和注意事项,需要的朋友参考一下 一、扩展已经存在的组件 1、需求背景 很多时候,我们使用jquery.ajax的方式向后台发送请求,型如       这种代码太常见了,这个时候我们有这样一个需求:在自己调用ajax请求的时候,我们不想每次都写error:function(e){}这种代码,但是我们又想让它每次都将ajax的

  • 本文向大家介绍简单介绍python封装的基本知识,包括了简单介绍python封装的基本知识的使用技巧和注意事项,需要的朋友参考一下 python封装简介 1.效果图:   对比一:   对比二: 2.学习来源代码: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 学习OOP概念,特别对深入理解抽象和封装感兴趣。 已签出以下内容 抽象VS信息隐藏VS封装 抽象和封装之间的区别? 我发现如果没有一个真实的、简单的示例类/代码片段,很难理解这些概念。 我的一个同事说过,抽象就是创建抽象类和普通类,用作用域保护其成员变量,称为封装。 有没有一种简单的方法我可以理解并帮助别人理解他们到底是什么,而不是重复下面的内容? 抽象和封装是互补的概念:抽象关注对象的可观察行为