我一直在玩pyglet。这是很不错的。但是,如果我运行我的代码,该代码位于一个可执行文件(称为 game.py)中,前缀通常为
#!/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)
运送多平台 python 代码的人们认为该领域的最佳实践是什么?