Poetry Cheatsheet¶
Installazione¶
Tabella_134_ Aggiungi a PATH (se si utilizza l'installatore ufficiale): Traduzione:
Comandi di base¶
Tabella_135_
Uso avanzato¶
Tabella_136_
Common Use Cases¶
Use Case 1: Avviare un nuovo progetto Python¶
# Create new project with src layout
poetry new my-app --src
# Navigate to project
cd my-app
# Add production dependencies
poetry add fastapi uvicorn pydantic-settings
# Add development dependencies
poetry add pytest pytest-cov black mypy --group dev
# Install all dependencies
poetry install
# Activate virtual environment
poetry shell
Use Case 2: Converting Existing Project to Poetry¶
# Navigate to existing project
cd existing-project
# Initialize Poetry (interactive)
poetry init
# Add existing dependencies
poetry add requests flask sqlalchemy
# Add dev dependencies from requirements-dev.txt
poetry add pytest black flake8 --group dev
# Generate lock file
poetry lock
# Install everything
poetry install
Use Case 3: Gestione dei gruppi di dipendenza multipli¶
# Install with documentation dependencies
poetry install --with docs
# Install without test dependencies
poetry install --without test
# Install only main dependencies (no dev/test)
poetry install --only main
# Add dependencies to specific groups
poetry add sphinx sphinx-rtd-theme --group docs
poetry add locust --group perf
Use Case 4: Costruire e pubblicare un pacchetto¶
# Update version in pyproject.toml
poetry version patch # 0.1.0 -> 0.1.1
poetry version minor # 0.1.1 -> 0.2.0
poetry version major # 0.2.0 -> 1.0.0
# Build package
poetry build
# Test publish to TestPyPI
poetry config repositories.testpypi https://test.pypi.org/legacy/
poetry publish -r testpypi --username __token__ --password $TEST_PYPI_TOKEN
# Publish to PyPI
poetry publish --username __token__ --password $PYPI_TOKEN
Use Case 5: Lavorare con i repository dei pacchetti privati¶
# Add private repository
poetry source add --priority=supplemental private-repo https://pypi.company.com/simple/
# Configure authentication
poetry config http-basic.private-repo username password
# Or use token authentication
poetry config pypi-token.private-repo your-token
# Add package from private repo
poetry add internal-package
# Publish to private repo
poetry publish -r private-repo
Use Case 6: Integrazione CI/CD¶
# Install Poetry in CI
curl -sSL https://install.python-poetry.org | python3 -
# Install dependencies (no dev dependencies)
poetry install --without dev --no-interaction --no-ansi
# Export for Docker or other tools
poetry export -f requirements.txt --output requirements.txt --without-hashes
# Run tests
poetry run pytest
# Build package
poetry build
Migliori Pratiche¶
-
Stagione 1 Episodio 2 - "Commit" Impedire sempre il file di blocco al controllo della versione per garantire le build riproducibili in tutti gli ambienti e membri del team.
-
** Utilizzare gruppi di dipendenza**: Organizzare le dipendenze in gruppi logici (INLINE_CODE_80__,
test,docs) invece della bandiera deprecata--dev____ per un migliore controllo e flessibilità. -
Pin Python version: Specificare il vincolo della versione Python in
pyproject.tomlper evitare problemi di compatibilità in ambienti diversi. -
Utilizza
poetry.lock_ per le applicazioni: Per applicazioni e servizi, fare affidamento sul file di blocco per le versioni esatte. Per le librerie, prova contro la gamma di versioni specificate in __INLINE_CODE_86_. -
Preferire __INLINE_CODE_87_: Nelle tubazioni CI/CD, utilizzare
--sync_ per garantire l'ambiente esattamente corrisponde al file di blocco, rimuovendo eventuali pacchetti estranei. -
Set
virtualenvs.in-project: Configura la Poesia per creare ambienti virtuali nella directory del progetto (poetry config virtualenvs.in-project true) per facilitare l'integrazione e la pulizia IDE. -
** Utilizzare i vincoli di versione con saggezza**: Utilizzare caret (
^) per la maggior parte delle dipendenze per consentire aggiornamenti compatibili, ma utilizzare versioni esatte per i pacchetti con API instabili o modifiche di rottura. -
Esportare la compatibilità Generare file
requirements.txt_ quando necessario per strumenti che non supportano Poesia, soprattutto in contenitori Docker o sistemi legacy. -
Keep Poetry aggiornato: Aggiorna regolarmente la poesia stessa (
poetry self update) per beneficiare di correzioni di bug, miglioramenti delle prestazioni e nuove funzionalità. -
Utilizza
poetry check_ prima dei commit: Convalida i filepyproject.tomlepoetry.lockprima di impegnarsi a catturare gli errori di configurazione in anticipo.
Risoluzione dei problemi¶
Traduzione: Pacchetti obsoleti che causano problemi | Controllare i pacchetti obsoleti con poetry show --outdated_, aggiornare selettivamente con poetry update package-name |