Python crée uniquement des fichiers de cache de bytecode pour les modules importés. Le script principal (ici test.py
) n'est pas mis en cache. Peu importe le niveau d'optimisation appliqué.
Importationtest
:
$ python -O -c 'import test'
hello
$ ls __pycache__
test.cpython-35.opt-1.pyc
Notez que le fichier de cache a été créé dans un répertoire distinct, nommé __pycache__
, et que le nom de fichier est basé non seulement sur le nom du module, mais aussi sur la Version Python et niveau d'optimisation utilisez -OO
pour obtenir .opt-2
. À partir de Python 3.5, l'extension de nom de fichier .pyo
n'est plus utilisée, voir PEP 488 -- Elimination of PYO files et voir PEP 3147 -- PYC Repository Directories pour savoir pourquoi un répertoire distinct est utilisé.
Si vous souhaitez pré-compiler vos modules, utilisez le python3 -m compileall
tool.