setuptools

setuptools 是 Python 最主流的打包和分发工具,用于构建、安装和发布 Python 包。

核心功能

  • 构建源码包(sdist)和二进制包(wheel)
  • 依赖管理
  • 入口点定义(命令行脚本)
  • 与 pip、PyPI 集成

现代配置方式

推荐使用 pyproject.toml(PEP 621),而非传统的 setup.py

[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(不推荐)

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"]
    }
)

常用命令

# 构建
python -m build
 
# 安装
pip install .
 
# 可编辑安装
pip install -e .
 
# 发布到 PyPI
twine upload dist/*

参考