setuptools:Python 打包的老牌工具,依然在更新
文章目录
setuptools:Python 打包的老牌工具,依然在更新
Python 开发者几乎每天都在和 setuptools 打交道。装包、发包、配项目,背后跑的都是它。这个项目在 GitHub 上有 2830 Star,数字不算高,但它的用户量是 Star 数的几万倍。几乎所有 Python 包都用它来构建和分发。

它解决了什么问题
setuptools 的核心功能是 Python 包的构建和分发。你写了一个 Python 库,想发布到 PyPI 让别人 pip install,就得靠 setuptools 来打包。它处理依赖声明、版本管理、入口点配置这些琐碎但必要的工作。
用法也不复杂。项目根目录放一个 setup.py 或 setup.cfg,填好包名、版本、依赖列表,跑一行 python setup.py sdist bdist_wheel,就能生成可分发的安装包。
为什么 Star 不多却值得关注
1. 它是基础设施
setuptools 不像新出的框架那样有话题性。它 2004 年就有了,二十年做同一件事。这类工具通常不会被大肆宣传,但离了它,Python 生态的运转会出问题。
2. 一直在更新
很多人以为 setuptools 是个已经完工的项目,实际上它还在持续维护。2024 年到现在,项目保持了稳定的发布节奏,修复兼容性问题,跟进 Python 语言本身的变化。GitHub 上测试、代码覆盖率、Ruff 格式检查这些 CI 流程都在正常运行。
3. 生态地位稳固
Twine、pip、build 这些工具都在围绕 setuptools 工作。Cython 扩展的构建、命名空间包的声明、平台条件依赖这些场景,setuptools 提供了标准的解决方案。

实际使用体验
对于大多数 Python 开发者来说,setuptools 是透明存在的。你不需要直接操作它,pip install 和 pip publish 在后台已经调用了它。只有当你需要自定义构建流程、处理 C 扩展、或者维护一个多平台的包时,才需要深入了解它的配置。
它的文档覆盖了从快速入门到高级用法的全部内容。项目本身也遵循 PSF 行为准则,讨论和 issue 跟踪机制都比较完善。
适用场景
如果你是 Python 包的维护者,setuptools 基本上是必选项。虽然近年来出现了 Poetry、PDM 这类新工具,但 setuptools 依然是 PyPI 上最广泛使用的打包后端。社区的大量教程、模板、CI 配置都默认围绕 setuptools 编写,切换到其他工具意味着重新适配这套流程。
对于只想用 Python 写脚本、不做分发的用户,setuptools 可能用不上。但只要你有一天需要把代码分享给别人用,它就在那等着你。
tools 可能用不上。但只要你有一天需要把代码分享给别人用,它就在那等着你。
更多推荐



所有评论(0)