Python compilé (PYC) — fichier .pyc
stableBytecode Python précompilé, généré automatiquement pour accélérer le chargement des modules.
Un fichier .pyc contient le bytecode compilé d’un module Python, généré automatiquement par l’interpréteur (souvent dans un dossier __pycache__) pour éviter de recompiler le code source à chaque exécution — un cache de performance plutôt qu’un format de distribution à proprement parler.
Son en-tête commence bien par un “nombre magique”, mais celui-ci change à chaque version mineure de Python (3.11 et 3.12, par exemple, utilisent des valeurs différentes) : il n’existe donc pas de signature binaire unique et stable pour l’ensemble du format, contrairement à la plupart des formats de cette encyclopédie. Un fichier .pyc compilé par une version de Python n’est d’ailleurs généralement pas compatible avec une autre version.
L’en-tête embarque aussi un horodatage (ou une somme de contrôle du fichier source, selon la méthode d’invalidation choisie) que Python compare au fichier .py d’origine pour décider s’il doit recompiler ou réutiliser le cache existant — un mécanisme entièrement transparent pour le développeur.
Contrairement à un exécutable compilé, un fichier .pyc reste relativement facile à décompiler pour retrouver une approximation lisible du code source, ce qui en fait une protection très limitée pour quiconque chercherait à distribuer du code Python sans en révéler la logique interne.
Les images de conteneurs Docker exécutant des applications Python intègrent souvent une précompilation explicite via compileall lors de la construction de l’image, afin que les fichiers .pyc soient déjà prêts au premier démarrage du conteneur plutôt que générés à la volée, ce qui réduit légèrement le temps de démarrage à froid de l’application.
Certains outils commerciaux plus poussés que le simple .pyc, comme Nuitka ou PyInstaller, vont plus loin en compilant ou en empaquetant un programme Python dans un exécutable natif autonome, une protection plus robuste contre la rétro-ingénierie que le bytecode intermédiaire du seul fichier .pyc.
Signature binaire
Ce format n'a pas de signature binaire fiable : il ne peut pas être identifié de façon certaine par ses seuls premiers octets.
Vérifier qu'un fichier porte bien cette signature →
Sécurité
Exécute du bytecode arbitraire lors de son import, avec les mêmes précautions qu'un script Python classique.
Auditer les métadonnées de ce format →
Questions fréquentes
Comment ouvrir un fichier .pyc ?
Python (interpréteur) permet d'ouvrir gratuitement un fichier .pyc. Voir la liste complète des logiciels compatibles ci-contre.
Quel est le type MIME du format Python compilé (PYC) ?
Le type MIME du format Python compilé (PYC) est application/x-python-code.
Le format Python compilé (PYC) (.pyc) est-il encore utilisé aujourd'hui ?
Oui, le format Python compilé (PYC) est stable et toujours largement utilisé, sans signe de déclin.
Peut-on ouvrir un fichier .pyc sur mobile, sans installer d'application ?
Aucun outil web n'est référencé sur cette fiche pour ce format : l'ouverture nécessite un logiciel de bureau (voir la liste « Avec quoi l'ouvrir » ci-contre).
Pourquoi mon fichier .pyc ne s'ouvre-t-il pas ?
Les causes les plus fréquentes sont l'absence de logiciel compatible installé, un téléchargement ou un transfert incomplet, ou une extension qui ne correspond plus au contenu réel du fichier. Voir le guide complet sur les causes possibles, ou vérifier le format réel avec l'identifieur de fichier.
Un fichier .pyc présente-t-il des risques de sécurité ?
Exécute du bytecode arbitraire lors de son import, avec les mêmes précautions qu'un script Python classique.
Un fichier ne s'ouvre pas : les causes possibles →
Comment savoir si un fichier est corrompu →
Sources
Dernière mise à jour :