Python包封装实战:从setup.py配置到whl/tar.gz打包全流程
本文详细介绍如何将Python代码封装为可分发的whl或tar.gz包。内容涵盖安装setuptools、构建标准目录结构、编写setup.py及__init__.py文件,并深入解析name、version、packages、data_files等关键参数的配置方法。最后通过具体命令演示打包过程,帮助开发者快速掌握Python库的发布技巧。
Python包封装概述与准备工作
将个人编写的程序代码打包生成whl或tar.gz格式的文件。
当开发者编写了通用的基础类库时,将其封装为whl或tar.gz格式,便于团队其他成员直接安装和使用这些基础类,提高开发效率。
首先需要确保环境中已安装setuptools工具。
使用pip命令进行安装:pip install setuptools。
在项目根目录下创建setup.py文件以及__init__.py文件,其中__init__.py文件内容可以为空,用于标识该目录为Python包。
项目目录结构与setup.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']
)
setup.py核心参数详解
除了上述示例中展示的基本参数外,setup函数还支持更多高级配置选项。
- name:指定打包后生成的包名称。
- version:定义包的版本号。
- author:填写作者姓名。
- author_email:提供作者的电子邮箱地址。
- py_modules:指定需要打包的具体.py文件名列表。
- packages:指定需要打包的Python文件夹名称。
- include_package_data:当项目中包含非Python文件(如html、js等静态资源)时,需通过include_package_data和package_data进行指定。package_data通常配置为{'your_package_name': ['files']}的形式。此外,还需修改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目录下即可找到生成的打包文件。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













