Habilidad de Empaquetado y Publicación
Estructura de proyectos y lanzamientos en PyPI - una Habilidad de Agente para Python 3.14 y uv 0.6+.
Busca en todas las páginas de la documentación
Estructura de proyectos y lanzamientos en PyPI - una Habilidad de Agente para Python 3.14 y uv 0.6+.
Crea una estructura de biblioteca publicable: src/<paquete>/, pyproject.toml (PEP 621), README.md, LICENSE, CHANGELOG.md, release.yml de GitHub Actions, pasos de prueba de simulación en TestPyPI y política de incremento de versión.
setup.py a pyproject| Entrada | Por qué |
|---|---|
| Nombre del paquete | Disponibilidad del nombre en PyPI |
| Licencia | MIT, Apache-2.0, propietaria |
| Versión mínima de Python | requires-python (3.14 vs 3.13) |
| Extras opcionales | Grupos de dependencias dev, gpu |
| Destino de publicación | PyPI, índice privado, Artifactory |
src/<nombre>/__init__.py con __version__[project.scripts] si se necesita un punto de entrada CLIuv build / python -m buildtwine check dist/* en CIsrc - importar el paquete desde src/ y no desde la raíz del repositorio en sys.path.pyproject - tokens solo en secretos de CI.hatchling o setuptools explícitamente.CHANGELOG por cada lanzamiento - formato Keep a Changelog.vX.Y.Z activa la publicación - no cada commit principal.uv sync --all-extras
uv run ruff check .
uv run pytest -q
uv build
uv run twine check dist/*
# CI: publicar en etiqueta después de la autenticación del editor confiable[project]
name = "acme-utils"
version = "0.1.0"
requires-python = ">=3.14"
dependencies = []
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
packages = ["src/acme_utils"]uv publish cuando esté disponible en uv fijado; de lo contrario, twine upload - la habilidad documenta ambos.
Un pyproject.toml por paquete o configuración uv del espacio de trabajo - documentar la estructura elegida en README.
Versiones de Stack: Esta página fue escrita para Python 3.14.0 (estable 3.14, mantenimiento 3.13), FastAPI 0.115+, Django 5.2, Flask 3.1, Pydantic 2, PyTorch 2.6+, pandas 2.2+, Polars 1.x, ruff 0.9+, y uv 0.6+.
Revisado por Chris St. John·Última actualización: 19 jul 2026