Estoy buscando compilar un conjunto bastante grande de módulos y paquetes de python para pyo. Sé que esto es posible configurando la variable de entorno PYTHONOPTIMIZE o especificando -O en el inicio. Me gustaría aplicar pyo en lugar de pyc para obtener la menor huella posible. Para hacer eso en mi módulo de implementación, tengo que crear un script de envoltura que inicie el guión real con la opción -O, porque la variable de entorno debe especificarse antes de iniciar el intérprete.Compilación de archivos .py en .pyo sin recurrir a un script de contenedor
¿Hay alguna forma de evitar esto y aplicar la creación de pyo programáticamente?
Saludos cordiales, Thorsten
Gracias por la respuesta, pero como se indicó anteriormente que sé del interruptor y me gustaría evitarlo. La razón es que esta es una herramienta de implementación y quiero evitar que las personas implementen accidentalmente dos versiones diferentes (pyc y pyo) del mismo archivo. Actualmente lo hago al envolver una llamada python.exe -O en una secuencia de comandos python a través de os.system. Eso funciona, pero es algo extraño, así que me preguntaba si podría deshacerme de eso. –
Sería bueno poder controlarlo programáticamente (más fácilmente) ... – martineau
"Tenga en cuenta que todo lo que hace el distintivo -O es deshabilitar la instrucción assert. Especificar -OO y docstrings se eliminan. Esto no representa mucha diferencia de velocidad o ahorro de espacio ". <- Eso realmente depende de cuántas declaraciones 'assert' y' if __debug__' tienes, ¿no? Ya sabes lo que dicen sobre las suposiciones. – DylanYoung