Python包封装实战:从setup.py配置到whl/tar.gz打包全流程

苏见山
苏见山
发布时间:2026-10-14 | 2人浏览过
原创

本文详细介绍如何将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目录下即可找到生成的打包文件。

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

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表