Vai al contenuto
__HTML_TAG_127_📄 Generare poesia PDF Guida_HTML_TAG_128__

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.toml per 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 file pyproject.toml e poetry.lock prima 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 |