0% ont trouvé ce document utile (0 vote)
4 vues8 pages

Guide complet sur Poetry pour Python

Ce document est un cours complet sur Poetry, un outil de gestion de dépendances et d'empaquetage pour Python. Il couvre l'installation, la création de projets, la gestion des dépendances, l'utilisation d'environnements virtuels, et inclut un exemple pratique avec une application Flask. Le document se termine par des bonnes pratiques et des ressources pour approfondir l'utilisation de Poetry.

Transféré par

claive295
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
4 vues8 pages

Guide complet sur Poetry pour Python

Ce document est un cours complet sur Poetry, un outil de gestion de dépendances et d'empaquetage pour Python. Il couvre l'installation, la création de projets, la gestion des dépendances, l'utilisation d'environnements virtuels, et inclut un exemple pratique avec une application Flask. Le document se termine par des bonnes pratiques et des ressources pour approfondir l'utilisation de Poetry.

Transféré par

claive295
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

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]

Vous aimerez peut-être aussi