В вашем каталоге Python lib будет скрипт с именем compileall.py
(например, /usr/lib/python2.6/compileall.py
).
В вашем коде spawn (например, с помощью os.spawnl
) вызывает compileall.py
указал на каталог, содержащий ваш сгенерированный код.Если вы вызовете его, используя python -O
, он сгенерирует .pyo
файлов;если вы вызываете его, используя python
, он сгенерирует файл .pyc
.
Я полагаю, хитрость заключается в том, чтобы вызвать правильную версию интерпретатора Python.
compileall.py
использует py_compile
под капотом.