gpt4 book ai didi

python - python优化的程序化控制?

转载 作者:太空狗 更新时间:2023-10-30 00:25:47 24 4
gpt4 key购买 nike

我一直在玩 pyglet .这是很不错的。但是,如果我运行我的代码,它位于一个可执行文件(称为 game.py)中,前缀为通常的

#!/usr/bin/env python

通过做

./game.py

然后它有点笨拙。但是如果我用

运行它
python -O ./game.py

PYTHONOPTIMIZE=1 ./game.py

然后它 super 光滑。

我不太关心为什么它在没有优化的情况下运行缓慢; 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 代码的人认为这方面的最佳实践是什么?

最佳答案

“在 Linux 上,我可以轻松地提供 ./game 脚本来为最终用户运行该文件:”

正确。

“但这不是很跨平台。”

只对了一半。恰好有两种 shell 语言很重要。标准的 Linux“sh”和非标准的 Windows“bat”(a/k/a cmd.exe)现在只有这些了。 [当我还是个 child 的时候,有 Open VMS DCL 和 Data General 奇怪的 shell 语言和 RSX-11 以及各种很棒的东西。感谢上帝的 Posix 标准。]

游戏.sh

python -O game.py

游戏.b​​at

python -O game.py

有趣的是,文件是相同的,只是扩展名(和文件格式)必须更改才能使各种操作系统满意。

如果您想要真正 通用的跨平台,您必须记住 Python 是一种 shell 语言。这种事情也行。

游戏启动.py

import subprocess
subprocess.Popen( "python -O game.py" )

关于python - python优化的程序化控制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1092243/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com