Я играл с pyglet. Это очень здорово. Тем не менее, если я запускаю мой код, который находится в исполняемом файле (назовем его game.py) с префиксом обычнымПрограммный контроль оптимизации python?
#!/usr/bin/env python
делая
./game.py
, то это немного неуклюжим. Но если я запускаю его с
python -O ./game.py
или
PYTHONOPTIMIZE=1 ./game.py
затем его супер-гладкой.
Мне все равно, почему он работает медленно без оптимизации; В документации pyglet упоминается, что оптимизация отключает множество утверждений, а также проверку ошибок OpenGL, и я рад оставить ее на этом.
Мой вопрос: как люди распространяют код Python, убедитесь, что конечные пользователи (с нулевым интересом к отладке или изменению кода) запускают оптимизированную версию кода. Конечно, есть лучший способ, чем просто сообщить людям, что они используют оптимизацию в примечаниях к выпуску (которые, вероятно, они не будут читать в любом случае)?
В Linux я могу легко обеспечить ./game
скрипт для запуска файла для конечных пользователей:
#!/bin/sh
PYTHONOPTIMIZE=1 ./game.py $*
, но это не очень кросс-платформенным.
У меня есть идея, я должен быть в состоянии изменить #!
строку
#!/usr/bin/env PYTHONOPTIMIZE=1 python
или
#!/usr/bin/env python -O
, но те, похоже, не работает, как ожидалось, и я не что они будут делать в Windows.
Есть ли способ контролировать оптимизацию из кода, о котором я не знаю? Что-то вроде:
import runtime
runtime.optimize(True)
Что считается лучшей практики в этой области людьми судоходных мультиплатформенный код питона?
Это не ответ, так как ответ С.Лоттса был абсолютно правильным и исчерпывающим. Идите с game.sh и game.bat, он работает. Но просто комментарий: #! строка ничего не делает в Windows, она полностью игнорируется. –