6.9 KiB
title, author, mainfont
title | author | mainfont |
---|---|---|
Les paquets externes | Steve Kossouho | Source Sans Pro |
Plus de paquets
L'écosystème de paquets tiers pour Python est regroupé essentiellement sur un dépôt officiel, nommé PyPI (Python Package Index).
Outre l'utilisation de pip
pour y accéder, quelques questions sont occasionnellement posées quant à la perennité de ces paquets dans des environnements professionnels, notamment où la sécurité importe particulièrement.
Critères d'un paquet de qualité
Plusieurs critères font d'une bibliothèque un atout de choix dans une pile technique (limitent le risque);
- Pris en charge par une société établie (l'argent appelle l'argent),
- Existe depuis longtemps (2 ans), et est mis à jour régulièrement avec une gestion active des tickets,
- Est correctement et régulièrement documenté,
- La communauté connaît et utilise suffisamment cette bibliothèque,
Ce n'est pas tout :
- Des sociétés privées proposent une prise en charge technique de la bibliothèque,
- Des sociétés établies s'en servent en production ! (bon, une des pires failles de l'histoire avec log4j en 2021 était potentiellement exploitable chez toutes les Fortune500)
Rappel sur l'utilisation de pip
pip
est un programme installé avec Python qui vous permet de télécharger et installer (dans votre virtualenv ou autre) des
paquets du dépôt PyPI. On peut l'utiliser de plein de façons différentes, mais l'essentiel, c'est d'ouvrir un terminal et de
taper (évidemment il faut remplacer les éléments nécessaires)
pip install <nom du paquet>
Traitement du texte
unidecode
: retirer les accents et translittérer.nltk
: usine à gaz pour le traitement du langage naturel (500+ Mo)chardet
: bibliothèque capable de suggérer une page de code pour un fichier texte (devine s'il s'agit de UTF8, UTF16, 850, 1252, etc.)
Dates et heures
pytz
: simplifier le cauchemar des fuseaux horaires dans la bibliothèque standard. (corrigé dans Python 3.9 aveczoneinfo
)pendulum
: traitement des dates, intervalles et dé/encodage de texte.arrow
: traitement des dates etc.ciso8601
: décodage rapide de chaînes de dates. Suivi en vitesse parpendulum
.
Web
flask
: microframework pour faire du web. Démarrage rapide, évolution plus compliquée.django
: framework web efficace et complet avec son propre ORM.fastapi
: framework pour écrire des API REST, récent.jupyter
: console Python interactive avancéejupyterlab
: console Python interactive avancée (encore plus avancée)
Réseau
scapy
: manipulation de paquets réseauparamiko
: implémentation du protocole SSHv2
ORM
sqlalchemy
: l'ORM de prédilection utilisé avec Flaskpeewee
: ORM inspiré de Djangoponyorm
: ORM bien pensé
Automatisation
fabric
: exécution de scripts sur plusieurs machines distantes via SSH.ansible
: très utilisé pour exécuter des trucs sur des machines via SSH.celery
: une file de tâches en Python, utilisable comme un cron, avec monitoring.selenium
: automatisation d'actions dans un navigateur web pour tests ou autres.playwright
: automatisation de navigateur web, meilleure expérience que Selenium. Par Microsoft.mouse
: émuler et/ou réagir à des actions souris.keyboard
: émuler et/ou réagir à des actions clavier.faker
: générer des données factices (noms, adresses, clés d'API, nationalité, lorem etc.)
Fichiers structurés
pandas
: Analyse de données tabulaires : Excel, JSON, CSV... tri, calcul, et génération de graphiques.dask
: Analyse de données parallélisable.modin
: Pandas parallélisable avec plusieurs backends disponibles.pyspark
: Analyse de données clusterisable (avec Spark).optimus
: boîte à outils d'analyse de données, peut utiliserpandas
.spire.xls
: manipulation de fichiers Excel et export dans plusieurs formats dont PDF. Lienpdfkit
: générer du PDF depuis du HTMLweasyprint
: générer des documents PDFbdepuis du HTML. Full Python, plus stable.reportlab
: usine à gaz pour créer du PDF.pypdf2
: manipuler des PDF (rotation, découpage des pages etc.)
lxml
: manipuler des XMLbeautifulsoup4
: manipuler du code HTML
Manipuler des images
pillow
: bibliothèque classique pour créer et traiter des images.pyside
: possède une classe QImage performante.skia
: par Google, dessin vectoriel, depuis env. 2017.cairo
: dessin vectoriel, depuis env. 2005.wand
: utiliser les fonctionnalités de ImageMagick.ffmpeg-python
: utiliser les fonctionnalités de FFMPeg
HTTP
requests
: facilite le HTTP. Capable de désérialiser du JSON depuis une réponse HTTP.python-dotenv
: permet de charger des informations depuis un fichier d'environnement (.env)fastapi
: concevez rapidement une API REST en Python.
IA et vision assistée par ordinateur
keras
: IA plus facile en Python. Dépend de TensorFlow.tensorflow
: IA en Python.pytorch
: IA en Python.opencv
: incontournable pour le traitement d'images et la détection de caractéristiques.
Calcul
numpy
: calcul rapide sur des données matricielles, tabulaires ou en n-dimensions.scikit-learn
: apprentissage machine.
Afficher des graphiques
matplotlib
: bibliothèque d'affichage de graphespygal
: bibliothèque d'affichage de graphes en SVGseaborn
: plus élégant que Matplotlib pour afficher des graphiquesplotly
: affichage de graphiques via les technologies webdash
: générer des tableaux de bord avec des graphiques (entre autres)
Formatage du code Python et vérification stylistique
black
: formate votre code sans poser de question. Très utilisé professionnellement.pylint
: indique tous les problèmes de normes et convention dans votre code.flake8
: problèmes de normes et convention, plutôt orienté PEP8.isort
: trie les imports automatiquement.radon
: outil de génération de métriques sur le code.mypy
: vérification des annotations de type.
Boilerplate Python
attrs
: Bibliothèque de décorateurs pourdataclasses
Spécialité Windows
winregistry
: accès simplifié à la base de registre Windows.
Générer des exécutables
pyinstaller
: Convertisseur de scripts Python en exécutables autonomes.py2exe
: Idem.
Comparaison avec d'autres packagers
Awesome Python
Curation des meilleurs paquets Python
Ressources d'entraînement à Python