L’ecosistema di Python si è tradizionalmente basato su strumenti come pip
e virtualenv
per la gestione delle dipendenze e degli ambienti di progetto. Anche se questi strumenti ci hanno servito bene, spesso portano a conflitti di dipendenze, gestione manuale dell’ambiente e configurazioni di progetto inconsistenti tra i team.
Python Poetry risolve queste sfide fornendo uno strumento moderno e unificato per la gestione delle dipendenze e degli ambienti. Si occupa di tutto, dagli ambienti virtuali alla pubblicazione dei pacchetti, garantendo al contempo build riproducibili attraverso una risoluzione intelligente delle dipendenze.
Questa guida ti mostrerà come utilizzare Poetry per ottimizzare il tuo flusso di lavoro nello sviluppo di Python e evitare comuni problemi legati alle dipendenze.
Python Poetry vs. PIP
Poetry e pip servono a scopi diversi nell’ecosistema Python. Mentre pip
è principalmente un installatore di pacchetti, Poetry è uno strumento completo per la gestione delle dipendenze e dei progetti. Ecco le differenze chiave:
1. Risoluzione delle dipendenze
- Pip: Risoluzione delle dipendenze semplice e lineare che può portare a conflitti
- Poesia: Risolutore avanzato delle dipendenze che impedisce conflitti prima dell’installazione
2. Gestione dell’ambiente virtuale
- Pip: Richiede strumenti separati (virtualenv, venv) e attivazione manuale
- Poesia: Crea e gestisce automaticamente gli ambienti virtuali per progetto
3. Configurazione del progetto
- Pip: Utilizza requirements.txt per le dipendenze, setup.py per i metadati del progetto
- Poesia: Singolo file pyproject.toml per tutte le esigenze di configurazione
4. File di blocco
- Pip: Nessun supporto integrato per i file di blocco
- Poesia: Genera poetry.lock per compilazioni riproducibili su diversi ambienti
5. Pubblicazione del pacchetto
- Pip: Richiede strumenti aggiuntivi (twine, setuptools) per la pubblicazione
- Poesia: Comandi integrati per la creazione e la pubblicazione dei pacchetti
Quando usare Poetry anziché pip
Scegli Poetry quando:
- Si lavora su progetti di squadra che necessitano di ambienti riproducibili
- Si stanno creando pacchetti che verranno pubblicati su PyPI
- Si gestiscono alberi di dipendenze complessi con possibili conflitti
- Si ha bisogno di gestione automatizzata degli ambienti virtuali
- Si desidera un singolo strumento per l’intero flusso di sviluppo
Preferire pip quando:
- Lavorare su script semplici con poche dipendenze
- Sto imparando Python per la prima volta
- Devo installare rapidamente un singolo pacchetto
- Lavoro in ambienti in cui non è possibile installare Poetry
- Mantenere progetti legacy che sono già configurati con pip
La regola generale è: utilizzare Poetry per qualsiasi progetto che verrà condiviso, distribuito o mantenuto a lungo termine. Utilizzare pip per esperimenti rapidi o esercizi di apprendimento.
Detto ciò, immergiamoci nell’uso di Poetry.
Configurazione di Python Poetry
Interagirai principalmente con Poetry come strumento da riga di comando (CLI), quindi ha senso installarlo a livello di sistema sulla tua macchina. Questa sezione copre questo primo passo cruciale e come impostare alcune configurazioni predefinite per Poetry in base alle tue esigenze.
Installazione di Poetry
Puoi installare Poetry utilizzando uno script di installazione ufficiale, che può essere scaricato ed eseguito con un singolo comando.
Per macOS, Linux e WSL2:
$ curl -sSL https://install.python-poetry.org | sudo python3 -
Per Windows Powershell (eseguire con privilegi di amministratore):
$ (Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -
Se stai utilizzando Windows e hai installato Python dal Microsoft Store (per qualche strana ragione), sostituisci py
con python
nel comando sopra.
Dopo che lo script di installazione è terminato, stampa un messaggio che ti chiede di aggiungere Poetry al tuo percorso PATH in modo che il poetry
comando sia disponibile ovunque.
Per macOS, Linux e WSL2, aggiungi la seguente riga al tuo script della shell come .bashrc
o .zshrc
:
$ export PATH="/Users/bexgboost/.local/bin:$PATH"
Per Windows, puoi seguire le istruzioni di output.
In seguito, verifica la tua installazione eseguendo poetry --version
.
Configurazione di Poetry
La maggior parte della configurazione di Poetry riguarda come vengono creati gli ambienti virtuali e come vengono installati i pacchetti. Puoi stampare un elenco (quasi) completo delle configurazioni di Poetry con:
$ poetry config --list
L’output sarà simile a quanto segue:
cache-dir = "/Users/bexgboost/Library/Caches/pypoetry" experimental.system-git-client = false installer.max-workers = null installer.modern-installation = true installer.no-binary = null installer.parallel = true keyring.enabled = true solver.lazy-wheel = true virtualenvs.create = true virtualenvs.in-project = null virtualenvs.options.always-copy = false virtualenvs.options.no-pip = false virtualenvs.options.no-setuptools = false virtualenvs.options.system-site-packages = false virtualenvs.path = "{cache-dir}/virtualenvs" # /Users/bexgboost/Library/Caches/pypoetry/virtualenvs virtualenvs.prefer-active-python = false virtualenvs.prompt = "{project_name}-py{python_version}" warnings.export = true
Nella prima riga, vediamo un percorso per la cache di Poetry. Viene utilizzato principalmente per memorizzare distribuzioni di pacchetti scaricati e ambienti virtuali. Gli ambienti virtuali che crei sono memorizzati qui per impostazione predefinita. Se desideri modificarlo, puoi eseguire il seguente comando:
$ poetry config virtualenvs.path path/to/new/virtualenv/dir
Un’altra configurazione importante è il numero di core utilizzati durante le installazioni. Per impostazione predefinita è impostato su quattro, ma possiamo renderlo più veloce utilizzando tutti i core della CPU. Per prima cosa, scopri il numero di core del tuo computer eseguendo os.cpu_count()
nell’interprete Python. Quindi, imposta l’output:
$ poetry config installer.max-workers = 10
Una configurazione opzionale è se creare ambienti virtuali nella directory di lavoro o nella cache. Questo è controllato tramite l’opzione virtualenvs.in-project
. Se lo imposti su True,
.venv
directory verrà sempre creata nella tua directory di lavoro:
$ poetry config virtualenvs.in-project true
Creazione di un Nuovo Progetto con Poetry
Approfondiamo nei passaggi chiave per creare un nuovo progetto Poetry e comprendere il suo file di configurazione principale.
Inizializzazione di un nuovo progetto Poetry
L’uso di Poetry inizia di solito creando un nuovo progetto con il poetry new
comando:
$ poetry new explore-poetry $ cd explore-poetry
Il comando crea una directory explore-poetry
pre-popolata con i seguenti file e directory:
explore-poetry ├── pyproject.toml ├── README.md ├── explore-poetry │ └── __init__.py └── tests └── __init__.py
Questa struttura di directory segue le migliori pratiche di Python:
pyproject.toml
: Il file di configurazione principale che definisce i metadati del progetto e le dipendenzeREADME.md
: File di documentazione che spiega il progettoexplore-poetry/
: Directory del codice sorgente contenente il codice del pacchetto principale, con__init__.py
per renderlo un pacchettotests/
: Directory per i file di test, con__init__.py
per renderlo un pacchetto (importabile)
Comprensione di pyproject.toml
Qui, il file pyproject.toml
richiede particolare attenzione in quanto è l’unico file non vuoto generato da Poetry:
[tool.poetry] name = "explore-poetry" version = "0.1.0" description = "" authors = ["BexTuychiev <[email protected]>"] readme = "README.md" [tool.poetry.dependencies] python = "^3.8" [build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api"
Questo file orchestrerà il tuo progetto e le sue dipendenze. Utilizza Tom’s Obvious, Minimal Language, che è stato concordato come linguaggio di configurazione standard per i pacchetti Python in PEP 518.
Tutti i filepyproject.toml
sono divisi in sezioni chiamate tabelle utilizzando parentesi quadre come tool.poetry
o build-system
. Poetry utilizza queste tabelle per gestire le dipendenze, i requisiti di build del progetto o per eseguire altre attività.
Mentre esegui i comandi Poetry descritti nelle sezioni successive, il pyproject.toml
file verrà aggiornato automaticamente.
Lavorare con gli Ambienti Virtuali in Poetry
In questa sezione, scoprirai tutto ciò che c’è da sapere sulla gestione degli ambienti virtuali in Poetry una volta che lo hai configurato. Imparerai perché gli ambienti virtuali sono importanti, come Poetry li gestisce automaticamente e i comandi di base per manipolarli, come la creazione, l’attivazione e il passaggio da uno all’altro. Imparerai anche come gestire le versioni di Python con Poetry.
Creazione e attivazione di un ambiente virtuale
Quando installi Poetry per la prima volta, non viene fornito con ambienti predefiniti, come dimostrato da un output vuoto quando esegui poetry env list
:
$ poetry env list # nessun output
Ma appena inizi ad aggiungere dipendenze (ne parleremo più avanti) con poetry add nome-pacchetto
, crea automaticamente un ambiente nella directory della cache per il progetto. Ad esempio, proviamo ad aggiungere requests
come dipendenza:
$ poetry add requests
Dovresti ricevere un output simile al seguente:
Creating virtualenv explore-poetry--I9GJYUn-py3.8 in /Users/bexgboost/Library/Caches/pypoetry/virtualenvs Using version ^2.32.3 for requests Updating dependencies Resolving dependencies... (2.5s) Package operations: 5 installs, 0 updates, 0 removals - Installing certifi (2024.8.30) - Installing charset-normalizer (3.4.0) - Installing idna (3.10) - Installing urllib3 (2.2.3) - Installing requests (2.32.3) Writing lock file
La prima riga indica che Poetry ha creato l’ambiente nella cache. Le righe successive informano che le dipendenze per requests
sono state risolte con successo, e viene generato un file di blocco (ne parleremo più avanti).
Prestate attenzione al nome dell’ambiente: esplora-poetry--I9GJYUn-py3.8
. Il nome include il nome della directory del progetto, seguito da un ID univoco e quindi dalla versione di Python che l’ambiente sta utilizzando.
La prossima volta che aggiungi una dipendenza, Poetry utilizza automaticamente questo ambiente per installare i pacchetti:
$ poetry add beautifulsoup4 Using version ^4.12.3 for beautifulsoup4 Updating dependencies Resolving dependencies... (1.1s) Package operations: 2 installs, 0 updates, 0 removals - Installing soupsieve (2.6) - Installing beautifulsoup4 (4.12.3) Writing lock file
Quando usi Poetry, il tuo terminale non mostrerà quale ambiente virtuale di Poetry è attivo. Per visualizzare queste informazioni, devi eseguire poetry env list
:
$ poetry env list explore-poetry--I9GJYUn-py3.8 (Activated)
Per interagire con l’ambiente Poetry attivo, puoi eseguire poetry shell
:
$ poetry shell
Il comando apre una nuova sessione shell all’interno di quella corrente e puoi eseguire comandi come python
o pytest
.
Ad esempio, per eseguire script Python:
$ poetry shell $ python script.py
Per eseguire framework di sviluppo come Streamlit:
# All'interno della shell $ streamlit run app.py
In seguito, puoi uscire dalla shell chiamando exit
.
In alternativa, puoi eseguire comandi nella shell Poetry senza entrarci con poetry run
:
$ poetry run python script.py $ poetry run streamlit run app.py
Configurazione della versione di Python
Quando esegui poetry add
o poetry install
, Poetry utilizza automaticamente la versione di Python specificata nel tuo file pyproject.toml
. Per specificare una versione diversa di Python, puoi eseguire il comando env use
:
$ poetry env use python3.11
Nota che Python 3.11 deve essere installato a livello di sistema sulla tua macchina affinché il comando funzioni.
Verifica che Poetry stia utilizzando l’ambiente con la nuova versione di Python:
$ poetry env list explore-poetry--I9GJYUn-py3.11 (Activated) explore-poetry--I9GJYUn-py3.8
Nota come il nuovo ambiente è automaticamente collegato al nostro progetto (gli ID sono gli stessi). Una volta configurata la tua versione di Python, puoi rimuovere gli ambienti con altre versioni per liberare spazio su disco:
$ poetry env remove python3.8
Quando elimini un ambiente, devi solo specificare la versione di Python. Puoi anche eliminare tutti gli ambienti e ricominciare da zero:
$ poetry env remove --all
Si noti che --all
tag rimuove tutti gli ambienti associati al progetto corrente, non gli ambienti di altri progetti.
Se stai lavorando su progetti di squadra, è spesso meglio mantenere l’ambiente virtuale nella directory del progetto:
$ poetry config virtualenvs.in-project true
Questo comando non avrà alcun effetto se è già presente un ambiente per il progetto nella cache. Per creare un ambiente locale, rimuovi prima tutti quelli esistenti dalla cache.
Questo crea una .venv
cartella nella tua directory di lavoro, che dovresti aggiungere al tuo .gitignore file.
Gestione delle dipendenze con Poetry
La gestione delle dipendenze è il punto di forza di Poetry. Offre funzionalità complete per specificare, installare e gestire le dipendenze in modo da non incorrere mai in conflitti di dipendenze infernali.
In questa sezione, imparerai ad aggiungere e installare dipendenze, creare gruppi di dipendenze, sintassi di specifica delle dipendenze in pyproject.toml
e file di blocco.
Aggiunta di dipendenze in Poetry
Quando si utilizza Poetry, si utilizzerà il poetry add nome-pacchetto
comando per installare i pacchetti da PyPI invece di pip install
. Questo ha alcuni vantaggi:
- Aggiunge automaticamente il pacchetto a
pyproject.toml
con il vincolo di versione corretto - Aggiorna il file di blocco per garantire build riproducibili
- Risolve le dipendenze per evitare conflitti
- Installa il pacchetto e tutte le sue dipendenze nell’ambiente virtuale
Ad esempio, aggiungiamo prima Numpy come dipendenza:
$ poetry add numpy
Immediatamente, dovresti ricevere un conflitto di risoluzione delle dipendenze che indica che la versione di Numpy che si sta installando non è compatibile con la tua versione di Python. Il motivo è che quando abbiamo cambiato all’ambiente Python 3.11, non abbiamo aggiornato il file pyproject.toml
in questo momento, assomiglia a questo:
[tool.poetry.dependencies] python = "^3.8" requests = "^2.32.3" beautifulsoup4 = "^4.12.3"
Il simbolo di accento circonflesso ^ viene utilizzato per indicare che il nostro esplora-poesia
progetto è compatibile con qualsiasi versione di Python fino a Python 4 ma l’intervallo di versioni di Numpy supporta solo le versioni di Python tra 3.8 e 3.12, che è un intervallo più stretto. L’errore di conflitto deriva da questo fatto.
Quindi, per risolvere l’errore, è necessario aggiornare l’intervallo di versioni di Python come segue:
python = ">=3.8, <3.12"
Una volta apportata questa modifica, poetry add numpy
il comando dovrebbe funzionare come previsto.
Hai appena osservato una delle migliori caratteristiche di Poetry – individuare i conflitti di versione prima di installare qualsiasi pacchetto anziché informarti delle incompatibilità di versione successivamente, come fa pip.
La sintassi per specificare le versioni delle dipendenze.
La poesia utilizza una sintassi potente per specificare una vasta gamma di versioni per la migliore sincronizzazione tra le dipendenze. Ecco i simboli più utilizzati:
- Caret (^): Consente aggiornamenti di patch e minori ma non principali. Esempio:
^1.2.3
consente aggiornamenti da 1.2.3 a 1.9.9 ma non a 2.0.0. - Tilde (~): Consente solo aggiornamenti di patch. Esempio:
~1.2.3
consente aggiornamenti da 1.2.3 a 1.2.9 ma non a 1.3.0. - Versione esatta: Specifica il numero di versione esatto. Esempio:
1.2.3
consente solo la versione 1.2.3 - Maggiore di (>): Consente qualsiasi versione superiore a quella specificata. Esempio:
>1.2.3
consente 1.2.4, 1.3.0, 2.0.0, ecc. - Minore di (<): Consente qualsiasi versione inferiore a quella specificata. Esempio:
<2.0.0
consente qualsiasi versione inferiore a 2.0.0. - Maggiore o uguale (>=): Consente la versione specificata e superiori. Esempio:
>=1.2.3
consente la versione 1.2.3 e qualsiasi versione superiore. - Minore o uguale (<=): Consente la versione specificata e quelle inferiori. Esempio:
<=2.0.0
consente la versione 2.0.0 e qualsiasi versione inferiore. - Intervallo di versioni: Combina vincoli con virgole. Esempio:
>=1.2.3,<2.0.0
consente versioni da 1.2.3 a 1.9.9 - Wildcard (*): Corrisponde a qualsiasi versione. Esempio:
1.2.*
corrisponde a qualsiasi versione che inizia con 1.2
Certo, puoi mescolare e abbinare questi elementi per soddisfare le tue esigenze.
Creazione di gruppi di dipendenze in Poetry
In progetti complessi con molti componenti in movimento, spesso si gestiscono diverse categorie di dipendenze.
Ad esempio, in un progetto di apprendimento automatico, spesso si creano diverse pipeline e componenti per l’ingestione dei dati, la pulizia dei dati, l’ingegneria delle caratteristiche, l’addestramento del modello, il rilascio e il monitoraggio. Senza dimenticare che è anche necessario completare la documentazione ed eseguire i test. Tutti questi passaggi hanno il loro ecosistema di strumenti e mescolare le loro dipendenze appesantisce il pacchetto di distribuzione finale.
Con Poetry, è possibile creare gruppi di dipendenze con nomi arbitrari in modo da poterli installare solo quando sono necessari. O la parte migliore – gli utenti del tuo pacchetto possono anche scegliere di installare le parti di cui hanno bisogno.
$ poetry add --group ui streamlit plotly dash $ poetry add --group dev black flake8 isort mypy pylint
I comandi sopra creano due gruppi di dipendenze, ui
e dev
(se non esistono già), e due sotto-tabelle in pyproject.toml
:
[tool.poetry.dependencies] python = "^3.11" requests = "^2.32.3" beautifulsoup4 = "^4.12.3" numpy = "^2.1.3" [tool.poetry.group.ui.dependencies] streamlit = "^1.39.0" plotly = "^5.24.1" dash = "^2.18.2" [tool.poetry.group.dev.dependencies] black = "^24.10.0" flake8 = "^7.1.1" isort = "^5.13.2" mypy = "^1.13.0" pylint = "^3.3.1"
Anche se i gruppi di dipendenze sono separati, vengono comunque risolti tra di loro. In altre parole, se c’è una dev
dipendenza in conflitto con un pacchetto in ui
, Poetry non eseguirà l’installazione.
In alcuni casi, è possibile creare gruppi di dipendenze opzionali o rendere opzionali i gruppi esistenti in modo che non vengano installati per impostazione predefinita quando un utente ricrea l’ambiente del progetto. Per farlo, è necessario creare una nuova sotto-tabella nel pyproject.toml
file. Ad esempio, renderemo il gruppo ui
opzionale di seguito:
[tool.poetry.group.ui] optional = true [tool.poetry.group.ui.dependencies] streamlit = "^1.39.0" plotly = "^5.24.1" dash = "^2.18.2"
È fatto impostando il parametro opzionale
su true
prima di dichiarare le dipendenze del gruppo.
Riproduzione di un progetto Poetry con file poetry.lock
Se qualcuno clona il tuo repository GitHub contenente un progetto Poetry, può ricreare una copia perfetta dell’ambiente virtuale per il tuo progetto eseguendo un singolo comando: poetry install
.
Il comando installazione utilizza il file poetry.lock
che è più esaustivo. A differenza di pyproject.toml
, il file di blocco elenca:
- Le versioni esatte delle dipendenze principali elencate in pyproject.toml
- Le versioni esatte delle dipendenze delle dipendenze principali (dipendenze trasitive)
Ad esempio, requests
dipende da urllib3, certifi, charset-normalizer
e idna
. Senza un file di blocco, queste sub-dipendenze potrebbero risolversi in versioni diverse su macchine diverse.
Il file di blocco garantisce che tutti i membri del tuo team ottengano le stesse versioni delle dipendenze, evitando il problema del “funziona sul mio computer”.
La differenza tra poetry add e poetry install
Spiegheremo la differenza tra add
e install
comandi di Poetry con un caso d’uso.
Immagina di lavorare su un progetto di rilevamento delle frodi. Aggiungi le tue dipendenze iniziali:
$ poetry add pandas scikit-learn
Questo aggiunge i pacchetti al file di blocco e pyproject.toml
. Successivamente, il tuo collega clona il repository:
$ git clone fraud-detection-repo-link $ cd fraud-detection $ poetry install
Eseguono il comando install
per installare tutto ciò che è elencato nel file di blocco.
In seguito, è necessario aggiungere un nuovo pacchetto:
$ poetry add xgboost
Il tuo collega tira le modifiche:
$ git pull $ poetry install
Eseguono il install
comando per installare il nuovo pacchetto. Quindi,
- Usa
poetry
add quando aggiungi nuove dipendenze - Usa
poetry install
quando hai bisogno di configurare un progetto esistente - Committa sempre
pyproject.toml
epoetry.lock
nel controllo di versione
Installazione dei gruppi di dipendenze con il comando poetry install
In precedenza, abbiamo imparato come raggruppare le dipendenze in Poetry. Quando esegui poetry install
, installa tutti i gruppi non facoltativi per impostazione predefinita, il che potrebbe non essere ciò che desideri in tutti i casi.
Ad esempio, potresti clonare un repository solo per lavorare sulla documentazione. Oppure desideri lavorare sul codice principale del repository, escludendo la documentazione e gli aspetti di testing. Il comando install
è sufficientemente flessibile da coprire tutti questi casi:
Escludendo determinati gruppi:
$ poetry install --without ui,dev
Installazione anche di gruppi opzionali:
# Installazione del gruppo di documentazione opzionale $ poetry install --with docs
Installazione solo di gruppi specifici:
$ poetry install --only ui
Installazione solo delle dipendenze di runtime del progetto (le dipendenze menzionate al di fuori dei gruppi, aggiunte con poetry add package
comandi):
$ poetry install --only main
Rimozione delle dipendenze in Poetry
Eliminare una dipendenza è semplice utilizzando il rimuovi
comando:
$ poetry remove requests
Questo rimuove requests
dalle dipendenze principali del progetto. Per rimuovere un pacchetto da una dipendenza di gruppo, è possibile utilizzare nuovamente il tag --gruppo
:
$ poetry remove streamlit --group ui
Il remove
comando disinstalla pulitamente il pacchetto, insieme alle sue dipendenze trasitive.
Pubblicare un Progetto con Poetry su PyPI
Se il tuo progetto è pronto per la distribuzione, pubblicarlo su PyPI (Python Package Index) consente ad altri sviluppatori di installare facilmente e utilizzare il tuo codice tramite pip
. Poetry rende questo processo estremamente semplice con soli due comandi:
$ poetry build # Costruisci le distribuzioni $ poetry publish # Pubblica su PyPI
Tuttavia, prima di eseguire questi comandi, è necessario configurare correttamente le credenziali PyPI. Per prima cosa, crea i tuoi account su:
Configura Poetry con le tue credenziali:
$ poetry config pypi-token.pypi your-pypi-token $ poetry config pypi-token.testpypi your-test-pypi-token
Ora, testa il tuo pacchetto prima:
# Configura il repository TestPyPI $ poetry config repositories.testpypi https://test.pypi.org/legacy/ # Pubblica su TestPyPI $ poetry build $ poetry publish -r testpypi
Dopo aver pubblicato su TestPyPI, puoi provare a installare il tuo pacchetto per verificare che tutto funzioni correttamente:
$ pip install --index-url https://test.pypi.org/simple/ your-package-name
Se tutto è a posto, puoi pubblicare su PyPI stesso:
$ poetry publish
Pratiche consigliate quando si lavora con Poetry
Ci sono molte insidie e pratiche consigliate nell’uso di Poetry, e naturalmente non possiamo menzionarle tutte in un singolo articolo. Ma ecco alcune comuni che puoi applicare immediatamente:
- Utilizza sempre ambienti virtuali — Poetry li crea automaticamente per ogni progetto
- Mantieni il tuo
pyproject.toml
file sotto controllo di versione ma escludipoetry.lock
per le librerie - Includi
poetry.lock
nel controllo di versione per le applicazioni per garantire build riproducibili - Utilizza la versione semantica per le versioni dei pacchetti (major.minor.patch). Puoi utilizzare
comandi poetry version patch/minor/major
per aumentare le versioni dei pacchetti di uno. Ad esempio,comando poetry version major
cambia 0.2.0 in 1.0.0 nel tuo filepyproject.toml
. - Specifica attentamente i vincoli di versione delle dipendenze per evitare conflitti
- Aggiorna regolarmente le dipendenze con
poetry update
ma testa accuratamente dopo gli aggiornamenti - Usa
poetry add --group dev
per le dipendenze di sviluppo per mantenerle separate - Documenta tutti gli scopi delle dipendenze in pyproject.toml utilizzando commenti
- Esegui
poetry check
prima di eseguire commit per validare la sintassi di pyproject.toml. Puoi anche considerare hook pre-commit. - Usa
poetry export
per generarerequirements.txt
quando necessario per altri strumenti. - Mantieni le dipendenze di produzione minime – sposta le funzionalità opzionali agli extra
- Testa l’installazione del tuo pacchetto in un ambiente pulito prima di pubblicare
- Usa TestPyPI prima di pubblicare nel repository principale di PyPI
- Mantieni un
CHANGELOG.md
chiaro per tenere traccia delle modifiche di versione - Utilizza
poetry run
per l’esecuzione degli script per garantire un corretto utilizzo dell’ambiente
Conclusioni e Prossimi Passi
La poesia ha rivoluzionato la gestione delle dipendenze in Python fornendo una soluzione robusta e intuitiva alle sfide comuni della gestione dei pacchetti. Le sue potenti funzionalità per la risoluzione delle dipendenze, la gestione degli ambienti virtuali e la pubblicazione dei progetti lo rendono uno strumento prezioso per lo sviluppo moderno in Python.
Per continuare il tuo percorso di sviluppo in Python, considera di esplorare questi percorsi di apprendimento completi:
- Traccia di Programmazione in Python— Mastica i fondamenti e i concetti avanzati di Python
- Python intermedio — Migliora le tue competenze in Python
- Fondamenti dei dati in Python — Impara le competenze essenziali di manipolazione dei dati
- Scienziato dei dati associato in Python — Immergiti nella scienza dei dati con Python
Ricorda, la gestione efficace delle dipendenze è solo un aspetto dello sviluppo professionale in Python. Mentre continui a crescere come sviluppatore, strumenti come Poetry ti aiuteranno a costruire progetti Python più mantenibili e affidabili.