Python Poetry: che cos’è e come funziona

di Lorenzo Neri
196 visualizzazioni

Python Poetry: che cos’è? Uno strumento molto utile per gestire le dipendenze nei tuoi progetti e come funziona lo scopriamo assieme qui.

Quando si tratta di dipendenze in Python no non sto parlando di serpenti che si fumano il crack al contrario: parliamo di gestire tutte quelle librerie e pacchetti che sono necessari al funzionamento del nostro progetto.

Se questi diventano tanti, diventa complicato gestirli.

Ciao mi chiamo Lorenzo Neri e sono un informatico: realizzo contenuti per aiutare le persone a padroneggiare l’arte del nuovo millennio, ovvero l’informatica!

Fammi indovinare: ti sarà già capitato di diventare pazzo di fronte a mille diverse librerie da integrare nel tuo progetto e puff! Compilazioni che si spaccano, incompatibilità fra versioni, librerie che non esistono più oppure di cui non ricordi il nome… Ci ho preso vero?

Esiste uno strumento molto utile per semplificare di molto tutto questo: Poetry è proprio questo.

Poetry: che cos’è

Come avrai già capito, Poetry è uno strumento per gestire le dipendenze e il packaging in Python.

In termini tutt’altro che tecnichesi, ti permette di dichiarare le librerie da cui il tuo progetto dipende e si occuperà di gestirle in maniera (semi)automatica per te.

Quindi sì, Poetry si occuperà di installare e aggiornare in automatico in base alle tue esigenze i pacchetti e librerie necessari al funzionamento del tuo progetto.

Chiarito quanto sia utile, se è tua intenzione farne uso dovrai installarlo e qui ti lascio una guida molto facile per procedere in totale autonomia.

Arrivati a questo punto, penso sia doveroso capire come funziona.

Poetry: come funziona

L’utilizzo base di Poetry, prevede che il tuo progetto Python si basi sul suo sistema di creazione.

Ovvero?

Dobbiamo creare un progetto Python tramite Poetry stesso. Ebbene sì, Poetry basa il suo funzionamento anche e soprattutto su questo.

Tranquillo: il tuo codice già scritto potrà tranquillamente essere preso e messo dentro il progetto nuovo!

Ciò detto, bisogna lanciare il seguente comando:

poetry new Il-tuo-progetto

Questo comando andrà a creare una nuova cartella nominata “Il-tuo-progetto” e il contenuto sarà così:

Il-tuo-progetto
├── pyproject.toml
├── README.rst
├── Il-tuo-progetto
│   └── __init__.py
└── tests
    ├── __init__.py
    └── test_Il-tuo-progetto.py

Vediamo che c’è un bel po’ di roba.

La cartella “Il-tuo-progetto” all’interno della cartella principale (sì lo so: sembra Inception), servirà a contenere i file del tuo stesso progetto.

La cartella “tests” serve a gestire i test da eseguire sul tuo progetto!

Ti suggerisco poi di aggiungere anche un bel “conftest.py” all’interno di quest’ultima cartella: se non sa di cosa parlo, butta un occhio qui 😉

Stesso discorso vale per il file “__init__.py” che se non conosci e non sai a che cosa serve, ti invito a leggere un articolo che ho scritto apposta ed esclusivamente solo per lui!

Dove? Qui!

Però, a noi interessa tutt’altra cosa all’interno di questa cartella: stiamo divagando, torniamo a noi.

A noi interessa il file principale generato da Poetry.

Che cos’è Pyproject.toml e come funziona in Poetry

Sin dall’inizio dell’articolo stiamo parlando della funzionalità principale di Poetry.

È racchiusa in questo file.

“Pyproject.tomlè il file che racchiude ed “orchestra” il tuo progetto e le sue dipendenze.

Quando crei il tuo progetto ha un aspetto simile a questo:

[tool.poetry]
name = "Il-tuo-progetto"
version = "0.1.0"
description = ""
authors = ["Nome Cognome <latua@email.it>"]
[tool.poetry.dependencies]
python = "*"
[tool.poetry.dev-dependencies]
pytest = "^3.6"

A parte l’impostazione e intestazione del progetto stesso dove c’è il nome, la versione, l’autore ecc, a noi imposta di ciò che sta al di sotto di [tool.poetry.dependencies] e [tool.poetry.dev-dependencies].

Al di sotto di queste due righe, andremo ad elencare i pacchetti e le librerie da cui dipende il nostro progetto.

Come vanno inserite?

Nel seguente formato:

nome-pacchetto-o-libreria = “versione”

Se ovviamente non vuoi mettere una versione specifica, puoi tranquillamente lasciare un asterisco 😉

Continua a scoprire di più con questi articoli!

Lascia un commento

Questo sito potrebbe fare uso di cookie e siccome l'UE mi obbliga a fartelo presente, eccoti il classico banner dove puoi decidere come gestirli. Accetta Leggi di più