私はpygletで遊んでいます。それは非常にうれしいです。ただし、通常のプレフィックスが付いた実行可能ファイル(game.pyと呼びます)にあるコードを実行すると、
#!/usr/bin/env python
することによって
./game.py
それからそれは少し不格好です。しかし、私がそれを実行すると
python -O ./game.py
また
PYTHONOPTIMIZE=1 ./game.py
その後、その超スムーズ。
最適化なしで実行が遅くなる理由はあまり気にしません。pygletのドキュメントには、最適化によって多数のアサートとOpenGLのエラーチェックが無効になると記載されていますが、そのままにしておくことができます。
私の質問は、Pythonコードを配布する人々が、エンドユーザー(コードのデバッグや変更にまったく関心がない)がコードの最適化されたバージョンを実行することをどのように確認するかです。確かに、リリースノートで最適化を使用していることを確認するように人々に指示するよりも良い方法があります(おそらくとにかく読まないでしょう)?
./game
Linuxでは、エンドユーザー向けにファイルを実行するためのスクリプトを簡単に提供できます。
#!/bin/sh
PYTHONOPTIMIZE=1 ./game.py $*
しかし、それはあまりクロスプラットフォームではありません。
#!
行を次のように変更できるようにする必要があるという考えがあります
#!/usr/bin/env PYTHONOPTIMIZE=1 python
また
#!/usr/bin/env python -O
しかし、それらは期待どおりに機能していないようで、Windowsで何ができるかわかりません。
私が知らないコード内から最適化を制御する方法はありますか?何かのようなもの:
import runtime
runtime.optimize(True)
マルチプラットフォームのPythonコードを出荷する人々がこの分野でベストプラクティスと見なしているものは何ですか?