Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. CPython — Wikipédia
CPython — Wikipédia 👆 Click Here! Read More..
Un article de Wikipédia, l'encyclopédie libre.

Cet article est une ébauche concernant l’informatique.

Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants.

CPython
Logo.
Image illustrative de l’article CPython

Date de première version 26 janvier 1994Voir et modifier les données sur Wikidata
Dernière version 3.14.0 (7 octobre 2025)[1]Voir et modifier les données sur Wikidata
Version en développement 3.8.0b3 (29 juillet 2019)[2]Voir et modifier les données sur Wikidata
Écrit en C et PythonVoir et modifier les données sur Wikidata
Système d'exploitation Multiplate-forme
Licence Python Software Foundation License[3]Voir et modifier les données sur Wikidata
Site web www.python.orgVoir et modifier les données sur Wikidata
modifier 

CPython est l'implémentation de référence du langage Python et l'implémentation par défaut et la plus largement utilisée de ce langage. CPython peut être défini à la fois comme un interpréteur et un compilateur, car il compile le code Python en bytecode avant de l'interpréter.

Il possède une interface avec plusieurs langages, dont le C, dans laquelle il est possible d'écrire explicitement des liaisons dans un autre langage que Python.

Enfin, c'est un logiciel libre.

Plates-formes supportées

[modifier | modifier le code]

CPython fonctionne sur un très grand nombre de plates-formes :

Compatible UNIX

[modifier | modifier le code]
  • AIX
  • BSD
  • FreeBSD
  • NetBSD
  • Linux
  • OpenBSD
  • Mac OS X
  • SPARC Solaris
  • autres, IRIX par exemple

OS bureautique :

  • Amiga
  • AROS
  • BeOS
  • Mac OS 9
  • Microsoft Windows
  • OS/2
  • RISC OS (précédemment Acorn)

Embarqué ou spécifique

[modifier | modifier le code]
  • GP2X
  • Java VM
  • Nintendo DS
  • Palm OS
  • PlayStation 2
  • PlayStation Portable
  • Psion
  • QNX
  • Sharp Zaurus
  • Symbian OS
  • Windows CE/Pocket PC
  • Xbox et XBMC
  • VxWorks

Autres systèmes d'exploitation

[modifier | modifier le code]
  • OS/400
  • OS/390
  • Plan 9
  • VMS
  • z/OS

Global interpreter lock

[modifier | modifier le code]

CPython utilise un verrou global pour protéger les ressources de l'interpréteur. Un programme Python ne peut donc pas tirer pleinement profit des machines multiprocesseurs à moins d'utiliser des processus séparés plutôt que des processus légers. La présence du GIL simplifie la mise en œuvre de CPython et facilite la mise en œuvre d'applications multithread qui ne bénéficient pas de l'exécution simultanée de code Python. Cependant, sans GIL, les applications de multitraitement doivent s'assurer que tout le code commun est thread-safe[4].

Bien que de nombreuses propositions aient été faites pour éliminer le GIL, le consensus général a été que dans la plupart des cas, les avantages du GIL l'emportent sur les inconvénients ; dans les quelques cas où le GIL est un goulot d'étranglement, l'application doit être construite autour de la structure multitraitement[5].

Après plusieurs débats[6],[7], un projet a été lancé en 2023 pour proposer de rendre le GIL optionnel à partir de la version 3.13 de Python[8], dont la sortie est prévue en octobre 2024[9].

Extension

[modifier | modifier le code]

Il existe plusieurs méthodes pour écrire des modules d'extensions. La méthode standard consiste à écrire une bibliothèque dynamique en C qui utilise des points d'entrée de l'interpréteur CPython pour manipuler les objets[10]. Il existe également des générateurs comme SWIG ou cython qui permettent d'utiliser des langages de plus haut niveau.

Il est aussi possible d'utiliser d'autres langages que le C, par exemple Boost pour le C++ ou Pyfort pour Fortran.

À partir de Python 2.5, la bibliothèque standard inclut le module ctypes, une FFI (Foreign function interface) qui permet d'appeler directement une bibliothèque dynamique depuis du code python[11].

Implémentation du modèle objet

[modifier | modifier le code]

Les objets CPython sont créés en étendant la structure PyObject, qui contient le compteur de références, les pointeurs utilisés pour le chaînage dans le ramasse-miettes et un pointeur vers la classe de l'objet.

Gestion de la mémoire

[modifier | modifier le code]

La gestion de mémoire est faite par comptage de référence. Un ramasse-miettes est inclus depuis la version 2.0 pour résoudre les problèmes de cycles.

Voir aussi

[modifier | modifier le code]

Il existe d'autres implémentations du langage Python notamment :

  • Jython, écrit en Java pour la machine virtuelle Java (JVM)
  • PyPy écrit en RPython (Python restrictif, restricted Python) et traduit en C
  • IronPython, écrit en C#

Notes et références

[modifier | modifier le code]
  1. ↑ a et b « Release 3.14.0 », 7 octobre 2025 (consulté le 14 octobre 2025)
  2. ↑ « https://www.python.org/downloads/release/python-380b3/ »
  3. ↑ « https://docs.python.org/3/license.html » (consulté le 19 août 2016)
  4. ↑ « Initialization, Finalization, and Threads », Python v3.8.3 documentation (consulté le 4 juin 2020)
  5. ↑ Jake VanderPlas, Python Data Science Handbook, O'Reilly Media, 2016 (ISBN 978-1491912058, lire en ligne)
  6. ↑ (en) « PEP 703: Making the Global Interpreter Lock Optional », sur Discussions on Python.org, 14 janvier 2023 (consulté le 31 août 2023)
  7. ↑ (en) « PEP 703: Making the Global Interpreter Lock Optional (3.12 updates) », sur Discussions on Python.org, 4 mai 2023 (consulté le 31 août 2023)
  8. ↑ (en) « PEP 703 – Making the Global Interpreter Lock Optional in CPython | peps.python.org », sur peps.python.org (consulté le 31 août 2023)
  9. ↑ « PEP 719 – Python 3.13 Release Schedule | peps.python.org », sur peps.python.org (consulté le 31 août 2023)
  10. ↑ « Extending and Embedding the Python Interpreter », sur python.org via Wikiwix (consulté le 8 octobre 2023).
  11. ↑ http://python.net/crew/theller/ctypes/
v · m
Python
Implémentation
  • CPython
  • IronPython
  • Jython
  • Numba
  • PyPy
  • Shed Skin
  • Stackless Python
Framework
  • CherryPy
  • Django
  • Flask
  • Mako
  • PyObjC (en)
  • Qt
    • PyQt
    • PySide
  • PyGTK
  • Scrapy
  • TurboGears
  • Web2py
IDE
  • Anjuta
  • IDLE
  • KDevelop
  • Komodo
  • Microsoft Visual Studio
  • PyCharm
  • Spyder
  • Visual Studio Code
Organisations
  • Python Software Foundation
  • Django Software Foundation
  • Django Girls
  • PyLadies
Autres
  • Python Software Foundation License
  • Pip
  • Liste de logiciels Python
  • Guido van Rossum
  • PyCon
  • PyPI
  • icône décorative Portail des logiciels libres
  • icône décorative Portail de la programmation informatique
Ce document provient de « https://fr.teknopedia.teknokrat.ac.id/w/index.php?title=CPython&oldid=223482456 ».
Catégories :
  • Python
  • Logiciel libre sous licence PSFL
Catégories cachées :
  • Wikipédia:ébauche informatique
  • Page utilisant P571
  • Page utilisant P348
  • Page utilisant P277
  • Page utilisant P275
  • Page utilisant P856
  • Article utilisant une Infobox
  • Article contenant un appel à traduction en anglais
  • Portail:Logiciels libres/Articles liés
  • Portail:Logiciel/Articles liés
  • Portail:Informatique/Articles liés
  • Portail:Programmation informatique/Articles liés

  • indonesia
  • Polski
  • الرية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصر
  • Nederlands
  • 本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українска
  • Tiếng Việt
  • Winaray
  • 中文
  • Русски
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id