Cours complet sur Poetry pour Python
Votre Nom
8 novembre 2025
Table des matières
1 Introduction à Poetry 2
1.1 Qu’est-ce que Poetry ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Pourquoi utiliser Poetry ? . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 Installation de Poetry 2
2.1 Installation sur Linux/macOS . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.2 Installation sur Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.3 Vérification de l’installation . . . . . . . . . . . . . . . . . . . . . . . . . . 2
3 Création d’un nouveau projet 3
3.1 Initialisation d’un projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.2 Structure du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
4 Le fichier [Link] 3
4.1 Structure de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
5 Gestion des dépendances 3
5.1 Ajouter des dépendances . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
5.2 Exemple complet d’ajout . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
5.3 Supprimer des dépendances . . . . . . . . . . . . . . . . . . . . . . . . . . 4
6 Environnements virtuels 4
6.1 Activation de l’environnement . . . . . . . . . . . . . . . . . . . . . . . . . 4
6.2 Gestion des environnements . . . . . . . . . . . . . . . . . . . . . . . . . . 4
7 Exécution de scripts 4
7.1 Exécuter des commandes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
8 Exemple pratique : Application Flask 5
8.1 Structure du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
8.2 Configuration [Link] . . . . . . . . . . . . . . . . . . . . . . . . . . 5
8.3 Code de l’application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
8.4 Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
9 Construction et publication 6
9.1 Build du package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
9.2 Publication sur PyPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1
10 Commandes utiles 7
10.1 Commandes fréquentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
11 Scripts personnalisés 7
11.1 Définition de scripts dans [Link] . . . . . . . . . . . . . . . . . . . 7
11.2 Exécution des scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
12 Bonnes pratiques 7
12.1 Workflow recommandé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
12.2 Gestion des versions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
13 Conclusion 8
1 Introduction à Poetry
1.1 Qu’est-ce que Poetry ?
Poetry est un outil de gestion de dépendances et d’empaquetage pour Python. Il
permet de :
— Gérer les dépendances de votre projet
— Créer des packages Python
— Gérer les environnements virtuels
— Publier des packages sur PyPI
1.2 Pourquoi utiliser Poetry ?
— Résolution automatique des dépendances
— Fichier de configuration unique ([Link])
— Gestion cohérente des environnements virtuels
— Construction et publication simplifiées
2 Installation de Poetry
2.1 Installation sur Linux/macOS
1 curl - sSL https :// install . python - poetry . org | python3 -
2.2 Installation sur Windows
1 ( Invoke - WebRequest - Uri https :// install . python - poetry . org -
UseBasicParsing ) . Content | python -
2.3 Vérification de l’installation
1 poetry -- version
2
3 Création d’un nouveau projet
3.1 Initialisation d’un projet
1 # C r e r un nouveau projet
2 poetry new mon - projet
3 cd mon - projet
4
5 # Ou initialiser dans un dossier existant
6 poetry init
3.2 Structure du projet
La structure générée est :
mon-projet/
[Link]
[Link]
mon_projet/
__init__.py
tests/
__init__.py
4 Le fichier [Link]
4.1 Structure de base
1 [ tool . poetry ]
2 name = " mon - projet "
3 version = " 0.1.0 "
4 description = " Une ␣ description ␣ de ␣ mon ␣ projet "
5 authors = [ " Votre ␣ Nom ␣ < votre@email . com > " ]
6 license = " MIT "
7
8 [ tool . poetry . dependencies ]
9 python = " ^3.8 "
10
11 [ tool . poetry . dev - dependencies ]
12 pytest = " ^5.2 "
13
14 [ build - system ]
15 requires = [ " poetry - core >=1.0.0 " ]
16 build - backend = " poetry . core . masonry . api "
5 Gestion des dépendances
5.1 Ajouter des dépendances
3
1 # D p e n d a n c e principale
2 poetry add requests
3
4 # D p e n d a n c e de d v e l o p p e m e n t
5 poetry add -- dev pytest
6
7 # D p e n d a n c e avec contrainte de version
8 poetry add " django >=3.0 , <4.0 "
5.2 Exemple complet d’ajout
1 # Ajouter plusieurs d p e n d a n c e s
2 poetry add flask sqlalchemy psycopg2 - binary
3 poetry add -- dev black flake8 mypy pytest - cov
5.3 Supprimer des dépendances
1 poetry remove package - name
6 Environnements virtuels
6.1 Activation de l’environnement
1 # Activer l ' environnement virtuel
2 poetry shell
3
4 # E x c u t e r une commande dans l ' environnement
5 poetry run python script . py
6
7 # Voir le chemin de l ' environnement
8 poetry env info
6.2 Gestion des environnements
1 # Lister les environnements
2 poetry env list
3
4 # Supprimer un environnement
5 poetry env remove python
7 Exécution de scripts
7.1 Exécuter des commandes
4
1 # E x c u t e r un script Python
2 poetry run python mon_script . py
3
4 # E x c u t e r des tests
5 poetry run pytest
6
7 # Lancer un serveur de d v e l o p p e m e n t
8 poetry run python -m flask run
8 Exemple pratique : Application Flask
8.1 Structure du projet
flask-app/
[Link]
flask_app/
__init__.py
[Link]
[Link]
tests/
test_app.py
8.2 Configuration [Link]
1 [ tool . poetry ]
2 name = " flask - app "
3 version = " 0.1.0 "
4 description = " Une ␣ application ␣ Flask ␣ exemple "
5 authors = [ " Developpeur ␣ < dev@example . com > " ]
6
7 [ tool . poetry . dependencies ]
8 python = " ^3.8 "
9 flask = " ^2.0.0 "
10 flask - sqlalchemy = " ^2.5.0 "
11 python - dotenv = " ^0.19.0 "
12
13 [ tool . poetry . dev - dependencies ]
14 pytest = " ^6.0.0 "
15 black = " ^21.0.0 "
16
17 [ build - system ]
18 requires = [ " poetry - core >=1.0.0 " ]
19 build - backend = " poetry . core . masonry . api "
8.3 Code de l’application
1 # flask_app / app . py
2 from flask import Flask , jsonify
3 import os
4
5 app = Flask ( __name__ )
5
6
7 @app . route ( '/ ')
8 def hello () :
9 return jsonify ({
10 " message " : " Bonjour ␣ depuis ␣ Flask ␣ avec ␣ Poetry ! " ,
11 " status " : " success "
12 })
13
14 @app . route ( '/ api / users ')
15 def get_users () :
16 return jsonify ({
17 " users " : [
18 { " id " : 1 , " name " : " Alice " } ,
19 { " id " : 2 , " name " : " Bob " }
20 ]
21 })
22
23 if __name__ == ' __main__ ':
24 app . run ( debug = True )
8.4 Tests
1 # tests / test_app . py
2 import pytest
3 from flask_app . app import app
4
5 @pytest . fixture
6 def client () :
7 with app . test_client () as client :
8 yield client
9
10 def t e s t_h el l o _e n dp o in t ( client ) :
11 response = client . get ( '/ ')
12 assert response . status_code == 200
13 data = response . get_json ()
14 assert data [ ' status '] == ' success '
15
16 def t e s t_u se r s _e n dp o in t ( client ) :
17 response = client . get ( '/ api / users ')
18 assert response . status_code == 200
19 data = response . get_json ()
20 assert ' users ' in data
21 assert len ( data [ ' users ' ]) == 2
9 Construction et publication
9.1 Build du package
1 # Construire le package
2 poetry build
3
4 # Le r s u l t a t sera dans dist /
5 ls dist /
6
9.2 Publication sur PyPI
1 # Publier sur PyPI
2 poetry publish
3
4 # Ou sur un repository p r i v
5 poetry publish -r private - repo
10 Commandes utiles
10.1 Commandes fréquentes
1 # Mettre jour les d p e n d a n c e s
2 poetry update
3
4 # Voir les d p e n d a n c e s o b s o l t e s
5 poetry show -- outdated
6
7 # Installer toutes les d p e n d a n c e s
8 poetry install
9
10 # Voir l ' arbre des d p e n d a n c e s
11 poetry show -- tree
11 Scripts personnalisés
11.1 Définition de scripts dans [Link]
1 [ tool . poetry . scripts ]
2 start = " flask_app . app : main "
3 test = " pytest ␣ tests / "
4
5 [ tool . poetry . urls ]
6 " Documentation " = " https :// example . com / docs "
7 " Repository " = " https :// github . com / user / repo "
11.2 Exécution des scripts
1 poetry run start
2 poetry run test
12 Bonnes pratiques
12.1 Workflow recommandé
1. poetry new mon-projet ou poetry init
2. poetry add pour les dépendances principales
7
3. poetry add –dev pour les outils de développement
4. poetry install après avoir cloné un projet
5. poetry shell pour activer l’environnement
6. poetry run pour exécuter des commandes
7. poetry build pour construire le package
12.2 Gestion des versions
— Utilisez le versionnage sémantique
— Mettez à jour régulièrement [Link]
— Testez toujours après les mises à jour
13 Conclusion
Poetry est un outil moderne et efficace pour la gestion de projets Python. Il simplifie
considérablement la gestion des dépendances, la création de packages et la maintenance
des environnements de développement.
— Documentation officielle : [Link]
— GitHub : [Link]
— PyPI : [Link]