Pourquoi convertir PY en PYC ?
La pré-compilation en .pyc permet à Python de sauter l'étape d'analyse lors de la prochaine exécution, offrant une légère amélioration de la vitesse de démarrage. Cela fournit également une légère obfuscation puisque le bytecode n'est pas un code source lisible par l'homme, bien qu'il puisse être décompilé avec des outils comme uncompyle6.
Comment convertir PY en PYC
Python (py_compile) FREE
Exécutez python -m py_compile votrescript.py dans un terminal ; le fichier .pyc apparaît dans le sous-dossier __pycache__ à côté de votre script, nommé avec la balise de version de Python.
Python (compileall) FREE
Exécutez python -m compileall /chemin/vers/projet pour compiler chaque fichier .py dans une arborescence de répertoires d'un seul coup ; tous les fichiers .pyc apparaissent dans leurs sous-dossiers __pycache__ respectifs.
À propos de ces formats
Un fichier .py est un fichier de code source Python - du texte brut contenant un programme ou un script écrit dans le langage Python. Pour lire le code, ouvrez-le dans n'importe quel…
Ouvrir les détails de .PY →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…
Ouvrir les détails de .PYC →Qualité et points de vigilance
- Un fichier
.pycest lié à la version exacte de Python qui l'a compilé - un fichier compilé avec Python 3.12 ne se chargera pas dans Python 3.11 ou antérieur, car chaque version intègre un « magic number » unique dans l'en-tête. - Le
.pycn'est pas une véritable protection du code source - des outils tels queuncompyle6peuvent décompiler le bytecode en source Python lisible ; ne comptez pas dessus pour protéger la propriété intellectuelle. - Python 3 écrit toujours les fichiers
.pycdans un sous-dossier__pycache__, jamais à côté du fichier source ; l'ancienne extension de bytecode optimisé.pyoa été supprimée dans Python 3.5.
Foire aux questions
Dois-je compiler manuellement en PYC, ou Python le fait-il automatiquement ?
.pyc la première fois qu'il s'exécute. La commande manuelle py_compile est utile pour pré-compiler sans exécuter ou pour détecter les erreurs de syntaxe tôt.Puis-je distribuer uniquement les fichiers PYC sans la source PY d'origine ?
.pyc sont spécifiques à une version et peuvent être décompilés. La pratique standard est de distribuer la source .py à la place.Où Python place-t-il le fichier PYC ?
__pycache__ à côté de la source .py, avec un nom comme votrescript.cpython-312.pyc reflétant la version de Python qui l'a compilé.