Python -La signification des extensions .pyo
26 juil. 2022
Sur les versions antérieures à python 3.5 l'interpréteur nous donnait la possibilité de générer du binaire optimisé dans un fichier spécifique pyo.
L'interpréteur python (par défaut CPython) peut recevoir une option :
- -O pour générer un fichier optimisé
- -OO la même chose que -O mais en enlevant les valeurs de __doc__
On peut également enregistrer cette valeur dans une variable d'environnement
Dans le nom du fichier optimisé on retrouve
Un autre point à connaître est la suppression des
Voici le cas d'exemple
Et celui avec l'optimisation
Il est important de préciser que de passer par un pyo ou même pyc ne rend pas le programme plus rapide, mais le charge plus rapidement en mémoire
Sur les dernières versions de python il n'est pas recommandé d'utiliser cette option : PEP 488
blog comments powered by Disqus
L'interpréteur python (par défaut CPython) peut recevoir une option :
- -O pour générer un fichier optimisé
- -OO la même chose que -O mais en enlevant les valeurs de __doc__
On peut également enregistrer cette valeur dans une variable d'environnement
- PYTHONOPTIMIZE=0 (pas d'option)
- PYTHONOPTIMIZE=1 est équivalent à -O
- PYTHONOPTIMIZE=2 est équivalent à -OO
$ ls -l __pycache__/
-rw-r--r-- 1 david david 119 juil. 25 12:34 file.cpython-310.opt-1.pyc
Dans le nom du fichier optimisé on retrouve
- le fichier : file
- l'interpréteur : CPython
- la version du python : 3.10
- l'option d'optimisation : opt-1 ou opt-2
- l'extension : pyc (car en python >=3.5 le pyo n'est pas utilisé, l'optimisation est comprise dans le pyc)
Un autre point à connaître est la suppression des
assert
lorsque le flag est utiliséVoici le cas d'exemple
Et celui avec l'optimisation
Il est important de préciser que de passer par un pyo ou même pyc ne rend pas le programme plus rapide, mais le charge plus rapidement en mémoire
Sur les dernières versions de python il n'est pas recommandé d'utiliser cette option : PEP 488