出于某种原因,-O
我访问的 Red Hat Enterprise Server(版本 5.3)上的 shebang 行中无法识别(优化的)标志。在其他系统上,可以毫无问题地识别标志。
在 OS X 上执行下面的脚本可以正常工作。-O
可以验证标志的识别,因为它在if __debug__
条件下启用(当不存在时)或禁用(当给定时)任何东西:
#!/usr/bin/env python -O
if __name__ == '__main__':
if __debug__:
print 'lots of debugging output on'
print 'Fin'
在 RHE 系统上执行相同的脚本会导致:
/usr/bin/env: python -O: 没有这样的文件或目录
没有该-O
标志,脚本将在 RHE 系统上正常执行(即,__debug__
内置变量将设置为True
)。
有没有跨平台的方法来解决这个问题?是否有一种特定于平台的方法可以将 shebang 行上的标志问题修复到 python 解释器?
编辑:在解释器范围 内设置变量(不使用 shebang 标志)的任何其他解决方法__debug__
也会很有趣。