.PYC

Fichier PYC

Compiled Python Bytecode File
Poser une question
RÉPONSE RAPIDE

Un fichier .pyc est du bytecode Python compilé que CPython met automatiquement en cache pour accélérer le démarrage. Vous n'avez normalement pas besoin de l'ouvrir ou de le modifier. Pour en exécuter un, utilisez la version de Python correspondante. Pour récupérer le code source à partir d'un .pyc, utilisez un décompilateur tel que decompyle3 ou pycdc - les résultats sont approximatifs et peuvent échouer sur les versions plus récentes de Python.

Développeur : Python Software Foundation (CPython) Catégorie : Fichiers de développement Standard ouvert MIME: application/x-python-code
S'OUVRE SUR Windows macOS Linux
Lié : .DO · .MD · .HEX · .XSD

Sur cette page

19k+ extensions indexées
Dernière révision le Jun 30, 2026

Pas sûr de la nature de votre fichier ?

Déposez n'importe quel fichier dans notre identificateur - nous lisons juste les premiers octets pour nommer le format.

Identifier un fichier

Qu'est-ce que le format de fichier PYC ?

Les fichiers .pyc sont utilisés par le langage de programmation Python. Un fichier .pyc est un exécutable qui contient du bytecode compilé pour un programme écrit en source Python. Le bytecode est un ensemble d'instructions permettant à l'interpréteur d'exécuter le programme sans ré-analyser la source originale à chaque lancement, ce qui accélère le temps d'importation et de démarrage.

Les fichiers .pyc sont accompagnés de leurs fichiers sources .py associés. Python compile un fichier .py et enregistre le résultat dans un fichier .pyc, qui peut ensuite être utilisé pour exécuter le programme directement. Depuis Python 3.2, ces fichiers cache sont placés dans un sous-répertoire __pycache__ aux côtés de la source, avec la version de l'interpréteur intégrée dans le nom du fichier (par exemple, script.cpython-312.pyc).

Chaque fichier .pyc commence par un en-tête de 16 octets. Les deux premiers octets sont un « magic number » spécifique à la version - il change à chaque version de CPython - suivi de 0x0D 0x0A (CR LF) aux octets 2-3. Les octets restants de l'en-tête contiennent soit l'horodatage et la taille du fichier source (par défaut), soit un hachage du fichier source pour des builds déterministes et reproductibles, un schéma introduit par la PEP 552 dans Python 3.7. Après l'en-tête, le fichier contient un objet de code sérialisé (« marshalled ») qui peut être inspecté avec le module intégré dis de Python.

Le bytecode .pyc est lié à une version spécifique de CPython - un fichier compilé sous Python 3.11 ne se chargera pas sous Python 3.12. L'ancien format de bytecode optimisé .pyo a été supprimé dans Python 3.5 ; les builds optimisés produisent désormais des fichiers .opt-1.pyc ou .opt-2.pyc à la place. Pour décompiler un .pyc vers une source lisible, des outils tels que uncompyle6, decompyle3 et pycdc (Decompyle++) sont couramment utilisés, bien que la compatibilité varie selon la version de Python. Sur Windows, les modules d'extension compilés utilisent le format associé .pyd.

Sécurité et sûreté

RISQUE : MEDIUM

Un .pyc est du bytecode que l'interpréteur Python EXÉCUTE, donc un .pyc malveillant peut exécuter du code arbitraire tout comme un script - n'exécutez jamais un .pyc provenant d'une source non fiable. C'est également une technique courante pour masquer des logiciels malveillants (en ne livrant que le bytecode compilé). À l'inverse, distribuer votre propre code sous forme de .pyc offre une protection très faible : il peut être décompilé et, au minimum, désassemblé avec le module « dis » fourni, ce n'est donc PAS un véritable moyen de garder la source secrète. La suppression des fichiers __pycache__ / .pyc est sans danger - Python les régénère automatiquement à partir des sources .py.

Détails du format

en bref
NOM COMPLETCompiled Python Bytecode File
DÉVELOPPEURPython Software Foundation (CPython)depuis Early CPython (1990s); current header layout (PEP 552 hash-based, deterministic) since Python 3.7, 2018
TYPE MIMEapplication/x-python-code
TYPEBytecode CPython binaire (objet de code sérialisé avec un en-tête versionné)
STANDARDOuvert · libre de droits

Programmes qui ouvrent les fichiers PYC

Windows3 apps
Python (run it) Open-source Exécutez-le avec la version de Python CORRESPONDANTE : « python module.pyc ». L'interpréteur exécute directement le bytecode - mais la version doit correspondre à celle qui l'a compilé.
decompyle3 / uncompyle6 (decompile) Open-source Récupérer la source : « pip install decompyle3 » puis « decompyle3 file.pyc > file.py ». Fonctionne mieux pour Python jusqu'à ~3.8 ; les commentaires/formatage sont perdus.
pycdc (Decompyle++) Open-source Pour les versions plus récentes de Python (3.9+) où uncompyle6 échoue : compilez pycdc et lancez « pycdc file.pyc ». Meilleur effort possible ; la précision sur les dernières versions est limitée.
macOS2 apps
Python (run it) Open-source Exécutez-le avec la version de Python CORRESPONDANTE : « python module.pyc ». L'interpréteur exécute directement le bytecode - mais la version doit correspondre à celle qui l'a compilé.
uncompyle6 / decompyle3 (decompile) Open-source Installez via pip et décompilez en .py ; mêmes avertissements de version que sur Windows.
Linux2 apps
Python (run it) Open-source Exécutez-le avec la version de Python CORRESPONDANTE : « python module.pyc ». L'interpréteur exécute directement le bytecode - mais la version doit correspondre à celle qui l'a compilé.
decompyle3 / pycdc (decompile) Open-source pip install decompyle3 (ou compilez pycdc pour 3.9+), puis décompilez le .pyc vers le .py.

Détails techniques

spécifications approfondies
DéveloppeurPython Software Foundation (CPython)
Type MIMEapplication/x-python-code
Structure du fichierBinaire - en-tête versionné de 16 octets suivi d'un objet de code Python sérialisé (marshalled)
Magic numberOctets 0-1 : valeur de 2 octets spécifique à la version (diffère selon la version de CPython) ; octets 2-3 : toujours 0x0D 0x0A (CR LF)
Disposition de l'en-têteMagic 32 bits, drapeaux de champ de bits 32 bits, puis soit mtime 32 bits + taille source 32 bits (mode horodatage), soit un hachage source 32 bits (mode hachage PEP 552)
Répertoire de cacheStocké dans __pycache__/ depuis Python 3.2 ; le nom du fichier encode la version de l'interpréteur, ex: script.cpython-312.pyc
Compatibilité de versionChaque version de CPython écrit un magic number unique ; un .pyc de Python 3.11 ne se chargera pas sous 3.12 et vice versa
Portabilité de la plateformeIndépendant de la plateforme au sein d'une même version de CPython - le même .pyc s'exécute sur Windows, macOS et Linux avec un interpréteur correspondant
Variantes optimiséespython -O et python -OO produisent .opt-1.pyc et .opt-2.pyc (suppression des asserts et docstrings) ; l'extension .pyo a été retirée dans Python 3.5
Contrôle de l'auto-générationCPython écrit les fichiers .pyc automatiquement lors de l'importation ; désactivé par le drapeau -B ou la variable d'environnement PYTHONDONTWRITEBYTECODE=1
Désassemblage / décompilationLe module intégré dis de Python désassemble le bytecode ; les outils tiers uncompyle6, decompyle3 et pycdc (Decompyle++) tentent une reconstruction de la source
Format de sérialisation interneLes objets de code sont sérialisés avec le module marshal - un format binaire compact distinct de pickle, ne faisant pas partie de l'API publique stable
Builds basés sur le hachageLa PEP 552 (Python 3.7+) a introduit les fichiers .pyc basés sur le hachage : l'en-tête stocke un hachage du fichier source au lieu du mtime pour des builds reproductibles
PubliéEarly CPython (1990s); current header layout (PEP 552 hash-based, deterministic) since Python 3.7, 2018
Standard ouvertOui · libre de droits
Spécificationdocs.python.org

Conversions PYC

Q&R de la communauté

posées par les utilisateurs
Poser une question rapide
Obtenez de l'aide de personnes qui travaillent avec des fichiers PYC. Soyez précis - incluez votre système et la version du logiciel.
Aucun compte requis · réponses généralement sous un jour

Pas encore de questions - soyez le premier à poser une question sur les fichiers PYC.

Foire aux questions

Qu'est-ce qu'un fichier .pyc et puis-je le supprimer ?
C'est du bytecode Python compilé que Python met en cache pour démarrer plus rapidement. Vous pouvez supprimer en toute sécurité les fichiers .pyc et les dossiers __pycache__ - Python les recréera à partir de la source .py lors de la prochaine exécution.
Comment convertir un .pyc en source .py ?
En le décompilant. Utilisez decompyle3 ou uncompyle6 pour Python jusqu'à 3.8 (« decompyle3 file.pyc > file.py »), ou pycdc pour Python 3.9+. Les résultats sont approximatifs - les commentaires et le formatage exact sont perdus - et peuvent échouer sur les versions les plus récentes de Python.
Pourquoi mon fichier .pyc ne s'exécute-t-il pas ?
Il s'agit presque toujours d'une incompatibilité de version : un .pyc est lié à la version exacte de CPython qui l'a créé (le magic number). Exécutez-le avec cette même version, ou récupérez le .py original et laissez votre Python le recompiler.
Le fait de livrer des .pyc au lieu de .py cache-t-il mon code source ?
Seulement faiblement. Un .pyc peut être décompilé en Python lisible et toujours désassemblé avec le module intégré « dis ». Cela décourage la consultation occasionnelle mais n'est pas une véritable protection.
Que contient un dossier __pycache__ ?
Des fichiers .pyc mis en cache nommés comme module.cpython-311.pyc - un par module importé, marqué avec la version de Python. C'est un cache de performance automatique qu'il est sûr de supprimer.
Puis-je exécuter un .pyc sans le fichier .py ?
Oui, si vous avez la version de Python correspondante : « python module.pyc ». Le .py n'est nécessaire que pour l'édition ou pour que Python régénère le cache.

Références

1Python docs - dis (bytecode disassembler)docs.python.org
2PEP 552 - Deterministic pycspeps.python.org

Continuer l'exploration

à travers la base de données

Top des extensions cette semaine

1.AQQAQQ Instant Messenger File
2.CRDOWNLOADChrome Partial Download File
3.PARTPartial Download File
4.BINCD/DVD Disc Image (BIN/CUE)
5.RPMSGRestricted Permission Message
6.MDMarkdown Document
7.NOMEDIAAndroid No-Media Marker File
8.PRO6XProPresenter 6 Bundle File
9.EXEWindows Executable (Portable Executable)
10.PRDXSoftMaker Presentations Document

Extensions liées

.DOStata Do-File
.MDMarkdown Document
.HEXIntel HEX File
.XSDXML Schema Definition
.MAPSource Map (JavaScript / CSS)
.CONFIGConfiguration File

Outils de fichiers gratuits

Un identificateur de fichier et un convertisseur d'images dans le navigateur - tout s'exécute sur votre appareil.

Ouvrir la boîte à outils

Parcourir les extensions de fichiers A-Z