Python3 setup.py 核心概念与打包命令解析

Jasper
Jasper
发布时间:2026-10-12| 3人浏览过
原创

本文解析 Python3 中 setup.py 的核心概念,区分源码发布(sdist)与二进制发布(bdist)的差异。通过具体命令如 --help-commands、bdist --help 及 bdist_wininst 展示如何查看帮助与执行打包。同时提供 setup.py 配置示例及测试脚本,指导用户完成模块编译、安装目录选择及成果验证。

源码发布与二进制发布的区别

在 Python 打包体系中,setup.py 扮演着关键角色。理解两种主要的发布形式有助于选择合适的构建方式:

  • sdist(源码发布):生成包含 setup.py 的源码包,适用于需要重新编译或二次开发的场景。
  • bdist(二进制发布):生成经过编译的二进制包,通常不包含 setup.py,适用于直接安装使用的场景。

查看与使用打包命令

setup.py 支持多种构建命令,用户可以通过命令行参数获取帮助信息或执行具体操作。

查看可用命令

首先,可以列出所有支持的构建命令,以便了解可用的打包选项:

python setup.py --help-commands

查看特定命令参数

若需了解某个具体命令(如 bdist)的详细参数,可使用以下命令:

python setup.py bdist --help

查看全局帮助

获取 setup.py 的全局帮助信息,包括常见选项和用法:

python setup.py --help

配置 setup.py 示例

一个典型的 setup.py 文件需要定义模块名称、版本、描述、包目录及作者等信息。以下是一个配置示例:

from distutils.core import setup
setup(name="ccy", 
  version="1.0", 
  description="ccy's module",
  package_dir={'':'c1'},
  packages=["c11","c12","c11.c111"],
  author="ccy")

该配置指定了模块名为 "ccy",版本为 "1.0",描述为 "ccy's module"。通过 package_dir 指定源码目录为 'c1',并通过 packages 列表指定需要打包的包结构。

执行打包与测试

完成配置后,可以执行具体的打包命令。例如,生成 Windows 安装程序:

python setup.py bdist_wininst

此命令会生成一个可执行的安装程序,用户可以选择安装目录进行安装。

测试编译安装成果

安装完成后,可以通过编写测试脚本来验证模块是否正常工作。以下是一个简单的测试脚本示例:

#TestMyPkg.py
from c11.f11 import my11
my11.showmyself()

该脚本导入了 c11 包中的 f11 模块,并调用了 my11 对象的 showmyself 方法,以验证模块是否正确安装并可调用。

总结

通过理解 sdist 与 bdist 的区别,掌握 setup.py 的命令参数与配置方法,用户可以高效地完成 Python 模块的打包与发布。无论是源码发布还是二进制发布,合理的配置与测试都是确保模块质量的关键步骤。

以上就是关于Python3中setup.py小概念解析的详细内容,更多关于Python打包与发布技巧的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。