Packaging moderno in Python

Crea e distribuisci pacchetti Python con pyproject.toml e strumenti moderni

Packaging moderno in Python

Il panorama del packaging Python si è evoluto. Ecco l'approccio moderno che utilizza pyproject.toml.

Struttura del progetto

my_package/
├── pyproject.toml
├── README.md
├── src/
│   └── my_package/
│       ├── __init__.py
│       └── core.py
└── tests/
    └── test_core.py

pyproject.thumb

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[project]
name = "my-package"
version = "0.1.0"
description = "A useful package"
readme = "README.md"
requires-python = ">=3.11"
license = {text = "MIT"}
authors = [
    {name = "Your Name", email = "you@example.com"}
]
dependencies = [
    "requests>=2.28",
    "pydantic>=2.0",
]

[project.optional-dependencies]
dev = [
    "pytest>=7.0",
    "mypy>=1.0",
    "ruff>=0.1",
]

[project.scripts]
my-cli = "my_package.cli:main"

Costruire ed pubblicare

CODICE_BLOCCO_2

Flusso di lavoro di sviluppo

# Create virtual environment
python -m venv .venv
source .venv/bin/activate

# Install in editable mode with dev dependencies
pip install -e ".[dev]"

# Run tests
pytest

# Type check
mypy src/

# Lint
ruff check src/

Confronto degli strumenti

Strumenti Scopo
hatch Costruisci, pubblica, gestisci ambienti
poetry Gestione delle dipendenze + costruzione
pdm PEP 582 pacchetti locali
flit Pubblicazione semplice