Ajouter un commentaire

Python 3.15 est disponible

Par:
francoistonic

mer, 14/10/2026 - 08:41

Comme promis, Python 3.15 est en version finale depuis 9 octobre. Cette version propose plusieurs évolutions importantes dans le langage et les outils.

Notre top 4 des nouveautés :

1 / lazy import

Dans des applications lourdes, Python peut prendre beaucoup de temps pour importer les modules même s'ils ne sont pas utilisés. Cela impacte négativement le temps de démarrage. Python introduit la notion de lazy import. Cela signifie que Python charge un module que quand il est réellement utilisé. 

lazy import json
lazy from pathlib import Path
print("Starting up...")  # json and pathlib not loaded yet
data = json.loads('{"key": "value"}')  # json loads here
p = Path(".")  # pathlib loads here

2 / UTF-8 par défaut

Python 3.15 met UTF-8 par défaut pour l'encodage indépendamment de l'environnement système. UTF-8 est un encodage Unicode aujourd'hui largement utilisé. Il sera utilisé pour les encodages des fichiers, des pipes et dans stdio. PEP 686 : https://peps.python.org/pep-0686/

3 / JIT

Le JIT devient de plus en plus efficace. Python 3.15 introduit un JIT plus optimisé sur x64 Linux et AArch64. Les améliorations mesurées annoncent environ 10-12 % de mieux. Ce "nouveau" JIT s'appuie sur LLVM 21 avec de nombreux optimisations internes. 

4 / des erreurs plus explicites

Un autre problème de Python concerne la qualité et la précision des messages d'erreur. L'interpréteur devrait proposer des suggestions plus pertinentes dans les exceptions AttributeError. 

Attention : la communauté évoque une particularité sur l'utilisation d'ILDE et de tkinter sous macOS 27. Les apps peuvent se bloquer ou avoir un comportant non prévu. Cela est dû à un comportement modifié de macOS 27 qui impacterait les versions de tkinter. Pour le moment, aucune solution n'est disponible sauf à retarder l'installation de macOS 27.

L'ensemble des principales PEP intégrées à la 3.15 :

Sur l'interpréteur :

  • PEP 661: Add sentinel built-in type
  • PEP 686: Python now uses UTF-8 as the default encoding
  • PEP 798: Unpacking in comprehensions
  • PEP 810: Explicit lazy imports for faster startup times
  • PEP 814: Add frozendict built-in type
  • PEP 829: Package startup configuration files
  • The experimental JIT compiler has been significantly upgraded, with 7-8% geometric mean performance improvement on x86-64 Linux over the standard interpreter, and 11-12% speedup on AArch64 macOS over the tail-calling interpreter
  • Improved error messages

Sur la librairie standard

  • PEP 799: A dedicated profiling package for organizing Python profiling tools
  • PEP 799: Tachyon: High frequency statistical sampling profiler
  • More color

Nouveautés sur les types

  • PEP 728: TypedDict with typed extra items
  • PEP 747: Annotating type forms with TypeForm
  • PEP 800: Disjoint bases in the type system

Améliorations sur les API C

  • PEP 782: A new PyBytesWriter C API to create a Python bytes object
  • PEP 788: Protection against finalization in the C API
  • PEP 803, 820, 793: Stable ABI for free-threaded builds and related C API

Changement sur les builds

  • PEP 831: Frame pointers are enabled by default for improved system-level observability

Documentation complète sur la 3.15 : https://docs.python.org/3/whatsnew/3.15.html

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
 H  H  TTTTTT  W     W  K  K  DDD  
H H TT W W K K D D
HHHH TT W W W KK D D
H H TT W W W K K D D
H H TT W W K K DDD