Ho giocato con pyglet. È molto carino. Tuttavia, se corro il mio codice, che si trova in un file eseguibile (lo chiamano game.py) preceduto con la solitaControllo programmatico dell'ottimizzazione python?
#!/usr/bin/env python
facendo
./game.py
quindi è un po 'goffo. Ma se l'eseguo con
python -O ./game.py
o
PYTHONOPTIMIZE=1 ./game.py
allora la sua super-liscio.
Non mi interessa molto perché funziona lento senza ottimizzazione; la documentazione di pyglet menziona che l'ottimizzazione disabilita i numerosi asser e anche il controllo degli errori di OpenGL, e sono felice di lasciarlo.
La mia domanda è: in che modo le persone che distribuiscono il codice Python si assicurano che gli utenti finali (con zero interesse nel debug o nella modifica del codice) eseguano la versione ottimizzata del codice. Sicuramente c'è un modo migliore di dire semplicemente alle persone di assicurarsi che usino l'ottimizzazione nelle note di rilascio (che probabilmente non leggeranno comunque)?
Su Linux posso facilmente fornire uno script ./game
per eseguire il file per gli utenti finali:
#!/bin/sh
PYTHONOPTIMIZE=1 ./game.py $*
ma che non è molto cross-platform.
Ho un'idea dovrei essere in grado di cambiare la linea #!
a
#!/usr/bin/env PYTHONOPTIMIZE=1 python
o
#!/usr/bin/env python -O
ma quelli non sembrano funzionare come previsto, e io non sono certo cosa farebbero su Windows.
C'è un modo per controllare l'ottimizzazione all'interno del codice di cui non sono a conoscenza? Qualcosa di simile:
import runtime
runtime.optimize(True)
quello che è considerato migliori pratiche in questo settore da parte di persone di spedizione multi-piattaforma codice Python?
Questa non è una risposta, poiché la risposta di S.Lotts era completamente corretta ed esauriente. Vai con game.sh e game.bat, funziona. Ma solo un commento: Il #! line non fa assolutamente nulla su Windows, è completamente ignorato. –