从其他脚本以优化模式运行python脚本

时间:2020-05-27 16:45:27

标签: python python-3.x

是否有一种方法可以从另一个python(3)脚本以优化模式运行python脚本?

如果我具有以下 test.py 脚本

if __debug__:
    print('Debug ON')
else:
    print('Debug OFF')

python text.py打印打开调试
python -OO text.py打印关闭调试

以下内容可正确打印调试关闭

import subprocess
subprocess.run(["python", "-OO", "test.py"])

但是还有更多的 pythonic 方法吗? 如果未将解释器称为python,则上述内容似乎不太便于移植。

我已经在这里搜索了,网上也没有运气。

1 个答案:

答案 0 :(得分:0)

我已经提出了使用compile的解决方案:

source_code = open("test.py").read()

compiled = compile(source_code, filename="test.py", mode="exec", optimize=2)

exec(compiled)

# prints "Debug OFF"

不知道这是否是最好的选择,只是分享是否对其他人有用。
子过程方法仍然更加简洁,可以通过一些改进使其可移植:

import sys
import subprocess
subprocess.run([sys.executable, "-OO", "test.py"])

欢迎提供更好的答案!