Sto cercando di compilare una serie piuttosto grande di moduli e pacchetti Python su pyo. So che questo è possibile impostando la variabile d'ambiente PYTHONOPTIMIZE o specificando -O all'avvio. Mi piacerebbe far rispettare pyo invece di pyc per ottenere l'impronta più piccola possibile. Per farlo nel mio deploy module devo creare uno script wrapper che lanci lo script vero e proprio con l'opzione -O, perché la variabile d'ambiente deve essere specificata prima di avviare l'interprete.Compilazione di file .py in .pyo senza ricorrere a uno script di wrapper
Esiste un modo per aggirare questo e imporre la creazione di pyo a livello di programmazione?
Cordiali saluti, Thorsten
Grazie per la risposta, ma come sopra So dell'interruttore e vorrei evitarlo. Il motivo è che questo è uno strumento di distribuzione e voglio evitare che le persone accidentalmente distribuiscano due versioni differenti (pyc e pyo) dello stesso file. Attualmente lo faccio avvolgendo una chiamata python.exe -O in uno script python tramite os.system. Funziona ma è un po 'strano, quindi mi chiedevo se potessi liberarmene. –
Sarebbe bello poterlo controllare a livello di codice (più facilmente) ... – martineau
"Notare che tutto il flag -O fa è disabilitare l'istruzione asser. Specificare -OO e docstring sono scartati.Questi non fanno molta differenza di velocità o risparmi di spazio. " <- Dipende veramente da quante affermazioni 'assert' e' if __debug__' hai, no? Sai cosa dicono delle ipotesi. – DylanYoung