eolemFrédéric Gaurat

Découvrez les bibliothèques Python qui ont révolutionné le développement

Publié le 10/05/2023 · mis à jour le 10/10/2026

Python est l’un des langages de programmation les plus populaires au monde, et cela tient en grande partie à sa large gamme de bibliothèques. Elles contiennent du code déjà écrit pour accomplir des tâches courantes, ce qui rend le travail des développeurs beaucoup plus simple et plus fluide.

Depuis plusieurs années, de nouvelles bibliothèques apparaissent et les plus établies évoluent. Voici celles qui ont marqué le développement Python, avec leur état actuel (octobre 2026) et des exemples de code que nous avons exécutés avec Python 3.14.

FastAPI

FastAPI a été créé comme alternative rapide aux frameworks web plus traditionnels tels que Flask et Django. Il génère automatiquement la documentation de votre API à partir des annotations de type (« type hints ») et prend aussi en charge les WebSockets. La bibliothèque est simple d’accès, mais une formation sur le langage reste très utile pour bien en profiter. FastAPI est très activement maintenu (version 0.143 en octobre 2026) et compatible avec Python 3.14.

Exemple :

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"Hello": "World"}

Pour le lancer : fastapi dev main.py (après pip install "fastapi[standard]").

Pydantic

Pydantic permet de valider vos données grâce aux annotations de type. Son cœur est écrit en Rust depuis la version 2, ce qui le rend très rapide. Il s’intègre étroitement avec FastAPI et génère automatiquement des schémas JSON pour documenter votre API. La version actuelle est la 2.14.

Exemple :

from pydantic import BaseModel

class Character(BaseModel):
    name: str
    strength: int

c = Character(name='Conan', strength=9)
print(c.model_dump())

Attention : dans les tutoriels plus anciens, vous verrez c.dict(). Cette méthode est dépréciée depuis Pydantic 2 au profit de model_dump(), et elle sera supprimée dans la future version 3.

Streamlit

Streamlit est une bibliothèque Python très accessible pour créer des applications web de visualisation de données, avec une interface soignée et sans écrire de HTML ni de JavaScript. Elle est toujours très active (version 1.65). Pour lancer une application : streamlit run app.py.

Exemple :

import streamlit as st

x = st.slider('Select a value')
st.write(x, 'squared is', x * x)

Rich

Rich enrichit la sortie console : couleurs, tableaux, barres de progression, rendu Markdown, affichage lisible des erreurs. Le dépôt se trouve désormais sous l’organisation Textualize (version 15 en 2026).

Exemple :

from rich.console import Console

console = Console()
console.print("Hello World", style="bold red")

En somme, ces bibliothèques permettent de gagner en efficacité et de proposer plus facilement des solutions à des problèmes courants. N’hésitez pas à en essayer une ou plusieurs dans vos prochains projets.

Boostez votre productivité avec l’analyse et la visualisation de données : pandas, NumPy et Matplotlib

Si vous travaillez avec des données en Python, vous avez probablement entendu parler de pandas, NumPy et Matplotlib. Ces bibliothèques sont très répandues parmi les data scientists : elles permettent de manipuler de gros tableaux de données et de créer facilement des graphiques.

Les avantages de ces bibliothèques pour la data science

pandas, NumPy et Matplotlib offrent plusieurs avantages :

  • Productivité améliorée : un ensemble cohérent d’outils plutôt qu’une combinaison de solutions disparates.
  • Manipulation rapide des tableaux de données (DataFrames) : on filtre, regroupe et transforme des tables entières sans écrire de boucles for fastidieuses.
  • Visualisations riches : Matplotlib permet de créer de nombreux types de graphiques (histogrammes, nuages de points, cartes de chaleur…) pour servir au mieux votre message.

1. pandas

pandas est une bibliothèque open source, construite au-dessus de NumPy, qui fournit des structures de données adaptées aux données tabulaires : les DataFrames. C’est souvent la première bibliothèque que l’on charge dans un environnement d’analyse. La version actuelle est la 3.0 (3.0.6), qui demande Python 3.11 ou plus récent. La version 3 apporte des changements de comportement par rapport à la 2 (notamment le type texte dédié par défaut et la copie à l’écriture), à garder en tête si vous migrez du code ancien.

2. NumPy

NumPy est la bibliothèque fondamentale du calcul scientifique en Python : elle fournit des tableaux multidimensionnels (arrays) efficaces, indispensables en machine learning. La version actuelle est la 2.5 (Python 3.12 ou plus récent requis).

3. Matplotlib

Matplotlib est la bibliothèque de visualisation de référence en Python, utilisée par beaucoup d’autres paquets pour leurs graphiques. La version actuelle est la 3.11.

Exemple et utilisation concrète

Supposons qu’un analyste financier travaille sur un historique de données boursières comportant plusieurs colonnes : date d’achat, prix d’acquisition, prix actuel, etc.

Considérons les besoins suivants :

1°) Sélectionner toutes les lignes achetées après 2015.
2°) Créer une nouvelle colonne contenant la différence entre le prix actuel et le prix d’acquisition.
3°) Afficher uniquement les titres dont le prix actuel dépasse le prix d’acquisition.

Pandas Example

Voici un exemple équivalent en code :

import pandas as pd

df = pd.DataFrame({
    "date_achat": pd.to_datetime(["2012-03-01", "2016-05-02", "2019-01-10"]),
    "prix_achat": [10.0, 20.0, 30.0],
    "prix_actuel": [15.0, 18.0, 45.0],
})

recents = df[df["date_achat"] > "2015-12-31"].copy()
recents["ecart"] = recents["prix_actuel"] - recents["prix_achat"]
print(recents[recents["ecart"] > 0])

Nous avons filtré, créé une nouvelle colonne et sélectionné les lignes voulues sans aucune boucle for.

Les bibliothèques de web scraping à utiliser (et celles à éviter)

Le web scraping est une technique permettant d’extraire des données de sites web. Il peut servir à de la veille concurrentielle ou à automatiser la récupération de données. Voyons quelles bibliothèques Python privilégier et lesquelles éviter. Pensez toujours à respecter les conditions d’utilisation et le fichier robots.txt des sites visés.

Les bibliothèques à utiliser

Beautiful Soup

Beautiful Soup est l’une des bibliothèques les plus utilisées en Python pour le web scraping. Elle permet d’analyser du HTML et du XML, y compris mal formés, et de rechercher facilement un élément dans le document. Elle est toujours maintenue (version 4.15). Elle ne télécharge pas les pages : on l’associe à une bibliothèque HTTP comme Requests.

from bs4 import BeautifulSoup
import requests

response = requests.get("https://example.com", timeout=10)
soup = BeautifulSoup(response.text, "html.parser")
print(soup.title.text)  # Example Domain

Playwright (à la place de Requests-HTML)

Pour les pages dont le contenu est généré par JavaScript, la solution moderne est Playwright, maintenu activement (version 1.63), qui pilote un vrai navigateur (Chromium, Firefox, WebKit). Après pip install playwright et playwright install chromium :

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch()
    page = browser.new_page()
    page.goto("https://example.com")
    print(page.title())  # Example Domain
    browser.close()

Scrapy

Scrapy est un framework d’extraction de données open source, rapide et efficace, écrit en Python. Il est conçu pour traiter de gros volumes de pages : gestion des files de requêtes, suivi des liens, export des résultats. Il est très actif (version 2.19, Python 3.10 ou plus récent requis).

import scrapy

class BlogSpider(scrapy.Spider):
    name = 'blogspider'
    start_urls = ['https://quotes.toscrape.com/']

    def parse(self, response):
        for quote in response.css('.quote .text'):
            yield {'title': quote.css('::text').get()}

        next_page = response.css('li.next a::attr(href)').get()
        if next_page is not None:
            yield response.follow(next_page, self.parse)

Pour l’exécuter : scrapy runspider blogspider.py -o resultats.json.

Les bibliothèques à éviter

Requests-HTML

Requests-HTML combinait Requests et un navigateur Chromium piloté par pyppeteer. C’était pratique, mais la dernière version date de 2019 et pyppeteer n’a pas publié de nouvelle version depuis 2024 (statut « Alpha »). Pour un nouveau projet, préférez Playwright, présenté plus haut.

PyQuery : à nuancer

Nous avions déconseillé PyQuery en raison d’un manque de maintenance. Ce n’est plus vrai : il est de nouveau publié régulièrement (version 2.1.0 en juillet 2026, Python 3.11 à 3.13 annoncés). Sa syntaxe inspirée de jQuery reste agréable si vous la connaissez déjà ; Beautiful Soup reste toutefois le choix le plus courant.

from pyquery import PyQuery as pq

d = pq('<div id="test" class="class1"><ul><li>xxxx</li></ul></div>')
print(d('#test li').text())  # xxxx

lxml : excellent, mais à utiliser pour ce qu’il fait le mieux

lxml est une bibliothèque rapide et très complète pour analyser et manipuler du XML et du HTML, avec prise en charge de XPath. Elle est maintenue (version 6.1). Ce n’est pas un mauvais choix pour le scraping, contrairement à ce que nous écrivions : c’est même le moteur sous-jacent de PyQuery et une option de Beautiful Soup. Son API est simplement plus bas niveau que celle de Beautiful Soup.

from lxml import html

tree = html.fromstring(
    "<html><body><div title='buyer-name'>Carson</div>"
    "<span class='item-price'>$29.95</span></body></html>"
)

buyers = tree.xpath('//div[@title="buyer-name"]/text()')
prices = tree.xpath('//span[@class="item-price"]/text()')

print(buyers)  # ['Carson']
print(prices)  # ['$29.95']

Créez vos projets d’IA avec TensorFlow, Keras et scikit-learn

Si l’intelligence artificielle vous passionne, vous connaissez sans doute TensorFlow, Keras et scikit-learn. Ces bibliothèques offrent une grande variété d’outils pour créer des modèles et résoudre des problèmes de classification, de régression et d’autres tâches.

Commençons par comprendre ces outils

1. TensorFlow

TensorFlow est une plateforme open source créée par Google en 2015 pour construire des modèles de deep learning. Elle peut s’exécuter sur CPU, GPU ou TPU. La version actuelle est la 2.21 ; elle annonce la prise en charge de Python 3.10 à 3.13, pas encore de Python 3.14. Aujourd’hui, une grande partie de la recherche et des nouveaux projets utilise aussi PyTorch : TensorFlow n’est plus le choix par défaut qu’il était en 2023.

2. Keras

Keras est une API de haut niveau pour construire et entraîner des réseaux de neurones. Depuis Keras 3, elle est « multi-backend » : un même code fonctionne avec TensorFlow, JAX ou PyTorch. Elle n’est donc plus liée à TensorFlow comme nous l’écrivions. Keras permet de prototyper rapidement avant de passer à l’échelle (version actuelle : 3.15, Python 3.11 ou plus récent requis).

3. scikit-learn

scikit-learn fournit des algorithmes de machine learning classique (classification, régression, clustering, réduction de dimension…) avec une API très homogène. C’est un excellent point de départ avant le deep learning. La version actuelle est la 1.9.

Comment utiliser ces outils ?

Utiliser ces outils d’apprentissage automatique suit généralement plusieurs étapes :

  • Récupérer et charger les données.
  • Diviser le jeu de données en deux : entraînement et test.
  • Construire le modèle, dont chaque couche peut être paramétrée selon vos besoins.
  • Entraîner le modèle, puis l’évaluer sur les données de test.
  • Une fois le modèle ajusté, l’utiliser pour prédire de nouveaux résultats.

Exemples d’utilisation

  • Un programme qui apprend à distinguer une photo de chat d’une photo de chien. Il est entraîné sur des images déjà étiquetées, puis analyse les pixels de chaque nouvelle image pour la classer.
  • La classification d’images médicales (par exemple des radiographies) pour aider les spécialistes dans leurs diagnostics. Ces systèmes sont entraînés sur de nombreuses images annotées par des experts et ne remplacent pas leur avis.

L’apprentissage automatique est l’une des technologies les plus importantes d’aujourd’hui, et ces bibliothèques en sont une bonne porte d’entrée.

Améliorez l’expérience utilisateur avec Tkinter, PyQt et wxPython

Lorsqu’on développe une application de bureau en Python, l’expérience utilisateur (UX) compte. Voici trois bibliothèques courantes pour créer des interfaces graphiques : Tkinter, PyQt (avec son équivalent officiel PySide) et wxPython.

Tkinter

Tkinter est la bibliothèque graphique de la bibliothèque standard de Python. Elle permet de créer facilement des fenêtres, boutons, champs de texte et autres widgets. Simple à utiliser, elle propose moins d’options que PyQt ou wxPython.

Exemple :

import tkinter as tk

root = tk.Tk()

label = tk.Label(root, text="Hello World", font=("Arial Bold", 20))
label.pack()

root.mainloop()

Il suffit d’importer tkinter puis de déclarer les éléments à l’aide des classes proposées.

PyQt

PyQt offre une large gamme d’options pour personnaliser votre interface. Il est multiplateforme (Windows, Linux, macOS). Contrairement à Tkinter, il doit être installé séparément. Attention : PyQt5, utilisé dans la version initiale de cet article, n’a plus de nouvelle version depuis 2024. Pour un nouveau projet, utilisez PyQt6 (version 6.11) ou PySide6 (version 6.12), le binding officiel de Qt, publié sous licence LGPL, alors que PyQt est en GPL ou licence commerciale.

Exemple avec PyQt6 (pip install PyQt6) :

import sys
from PyQt6.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout

app = QApplication(sys.argv)

window = QWidget()
layout = QVBoxLayout()
layout.addWidget(QPushButton('Bouton 1'))
layout.addWidget(QPushButton('Bouton 2'))
window.setLayout(layout)

window.show()
sys.exit(app.exec())

Quelques points forts de Qt :

  • Un large ensemble de widgets et de contrôles
  • Des feuilles de style pour personnaliser l’apparence
  • L’affichage d’images, de graphiques et de contenu web

wxPython

wxPython permet de créer des interfaces graphiques qui reprennent l’apparence native de chaque système. Elle offre beaucoup d’options, mais elle est plus longue à prendre en main que Tkinter. Elle est toujours maintenue (version 4.3.1, juillet 2026, compatible Python 3.14).

Exemple (pip install wxPython) :

import wx

class Example(wx.Frame):
    def __init__(self, parent, title):
        super().__init__(parent, title=title, size=(260, 180))
        panel = wx.Panel(self)

        vbox = wx.BoxSizer(wx.VERTICAL)
        hbox = wx.BoxSizer(wx.HORIZONTAL)
        hbox.Add(wx.StaticText(panel, label='Entrez un texte…'), 0, wx.RIGHT | wx.TOP, 8)
        hbox.Add(wx.TextCtrl(panel), 1, wx.EXPAND | wx.TOP, 5)
        vbox.Add(hbox, 0, wx.EXPAND | wx.ALL, 10)
        panel.SetSizer(vbox)

app = wx.App()
frame = Example(None, 'Exemple wxPython')
frame.Show()
app.MainLoop()

La construction est très structurée : il faut créer des conteneurs (sizers) qui accueillent les différents éléments. wxPython demande un peu plus d’efforts, mais le résultat s’intègre bien au système.

Fonctionnalité Tkinter PyQt / PySide wxPython
Installation Incluse avec Python À installer À installer
Widgets De base Très large gamme Large gamme
Personnalisation graphique Limitée (thème ttk) Très poussée Moyenne
Mise en page Gestionnaires pack(), grid(), place() Layouts, éditeur visuel (Qt Designer) Sizers

N’hésitez pas à expérimenter avec ces trois bibliothèques pour choisir celle qui convient le mieux à votre projet.

Optimisez vos performances avec Cython, Numba et PyPy

Pour améliorer les performances de votre code Python, plusieurs outils existent. Trois des plus connus sont Cython, Numba et PyPy. Un conseil avant de les essayer : mesurez d’abord (avec cProfile par exemple), et vérifiez si NumPy ou pandas ne résolvent pas déjà le problème en vectorisant le calcul.

Cython

Cython est un compilateur qui transforme du code Python, enrichi de types statiques, en code C. Selon les cas, ces types statiques peuvent accélérer sensiblement l’exécution. La version actuelle est la 3.3.

Voici un exemple, à enregistrer dans un fichier sumc.pyx :

import cython

@cython.boundscheck(False)
def sum_cython(int n):
    cdef long long s = 0
    cdef int i

    for i in range(n):
        s += i

    return s

Dans cet exemple, boundscheck(False) désactive la vérification des indices (elle n’a ici aucun effet pratique, il n’y a pas de tableau, mais elle sert dès que vous manipulez des tableaux). Les variables i et s sont déclarées avec cdef pour qu’elles soient de simples entiers C, et l’argument n est typé pour que le compilateur optimise mieux la boucle. Notez que s est un long long : avec un int de 32 bits, la somme déborderait dès que n dépasse environ 65 000, ce que Python, qui gère des entiers de taille arbitraire, ne fait pas.

Il faut compiler le fichier, par exemple avec un setup.py (un compilateur C est nécessaire) :

from setuptools import setup
from Cython.Build import cythonize

setup(ext_modules=cythonize("sumc.pyx"))

Puis python setup.py build_ext --inplace, après quoi import sumc fonctionne comme n’importe quel module.

Numba

Numba, développé par l’écosystème Anaconda, utilise la compilation juste-à-temps (JIT, via LLVM) pour accélérer les fonctions numériques, en particulier celles qui manipulent des tableaux NumPy. Contrairement à Cython, aucune étape de compilation séparée n’est nécessaire : il suffit de décorer la fonction. Numba est activement maintenu (version 0.68) et compatible avec Python 3.14.

from numba import jit

@jit(nopython=True)
def sum_numba(n):
    s = 0

    for i in range(n):
        s += i

    return s

print(sum_numba(1_000_000))  # 499999500000

Le décorateur @jit indique à Numba de compiler la fonction en code machine au premier appel. Avec nopython=True, Numba génère une erreur s’il ne parvient pas à tout compiler sans repasser par l’interpréteur Python. Dans les versions récentes, @njit (équivalent de @jit(nopython=True)) est le raccourci habituel, et le mode « nopython » est de toute façon devenu le comportement par défaut de @jit.

PyPy

PyPy est une implémentation alternative de l’interpréteur Python qui utilise la compilation juste-à-temps. Il peut être nettement plus rapide que CPython sur du code Python « pur » avec beaucoup de boucles. La version actuelle (8.0) est compatible avec Python 3.11 et 3.12. Le support des extensions écrites en C, et donc de certaines bibliothèques scientifiques, est en revanche plus limité que sur CPython : vérifiez la compatibilité de vos dépendances avant de basculer.

Le plus simple pour l’installer est d’utiliser uv :

$ uv python install pypy

Vous pouvez ensuite exécuter votre programme avec :

$ uv run --python pypy mon-fichier-python.py

Cython, Numba et PyPy sont des outils performants qui permettent d’accélérer des scripts par rapport au Python « pur ». Chacun convient mieux à certains cas : Cython pour des extensions compilées, Numba pour le calcul numérique, PyPy pour du code Python pur. Testez avant de choisir.

Bibliographie

Quelles sont les meilleures bibliothèques Python pour débuter ?

Pour débuter, privilégiez des bibliothèques simples d’accès, bien documentées et soutenues par une grande communauté.

NumPy

NumPy fournit des fonctions pour manipuler efficacement des tableaux multidimensionnels volumineux et des matrices. Elle est la base de la plupart des outils scientifiques en Python et sert beaucoup en science des données et en apprentissage automatique.

pandas

pandas est une bibliothèque incontournable de l’analyse de données : elle stocke et manipule facilement les données sous forme tabulaire grâce aux DataFrames, et s’articule très bien avec NumPy. Pour de très gros volumes, Polars est une alternative récente et rapide qui mérite un coup d’œil.

Matplotlib

Matplotlib permet aux débutants comme aux data scientists d’afficher simplement leurs données sous forme de graphiques 2D et en 3D. Elle propose une interface orientée objet. Si vous cherchez des graphiques plus esthétiques ou interactifs, regardez aussi Seaborn et Plotly.

scikit-learn

scikit-learn fournit des algorithmes d’apprentissage automatique pour la classification, la régression, le clustering ou encore la réduction de dimension. Sa documentation, riche en exemples, en fait un bon outil d’apprentissage.

Références :

Bibliographie

Documentation pandas
Documentation NumPy
Documentation Matplotlib
Documentation TensorFlow
Documentation Keras
Documentation scikit-learn

Aller plus loin

Pour maîtriser ces bibliothèques et savoir laquelle choisir selon votre projet, découvrez notre formation Python à distance.