setuptools 是 Python 最主流的打包和分发工具,用于构建、安装和发布 Python 包。
核心功能
- 构建源码包(sdist)和二进制包(wheel)
- 依赖管理
- 入口点定义(命令行脚本)
- 与 pip、PyPI 集成
现代配置方式
推荐使用 pyproject.toml(PEP 621),而非传统的 setup.py:
1
2
3
4
5
6
7
8
9
10
11
| [build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"
[project]
name = "my-package"
version = "0.1.0"
dependencies = ["requests>=2.25.0"]
[project.scripts]
my-cli = "my_package.cli:main"
|
传统 setup.py(不推荐)
1
2
3
4
5
6
7
8
9
10
11
| from setuptools import setup, find_packages
setup(
name="my-package",
version="0.1.0",
packages=find_packages(),
install_requires=["requests>=2.25.0"],
entry_points={
"console_scripts": ["my-cli=my_package.cli:main"]
}
)
|
常用命令
1
2
3
4
5
6
7
8
9
10
11
| # 构建
python -m build
# 安装
pip install .
# 可编辑安装
pip install -e .
# 发布到 PyPI
twine upload dist/*
|
参考
- [[pyproject.toml]]:现代 Python 项目配置
- 官方文档:https://setuptools.pypa.io/
Comments