由于某些原因,-O
(优化)标志在我访问的Red Hat Enterprise Server(5.3版)的shebang行中无法识别。在其他系统上,可以毫无问题地识别标志。在
在OSX上执行下面的脚本很好。可以验证对-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: No such file or directory
没有-O
标志,脚本在RHE系统上正常执行(即,__debug__
内置变量将设置为True
)。在
有没有跨平台的方法来解决这个问题?有没有一种特定于平台的方法可以将shebang行上的标志问题修复到python解释器?在
编辑:在解释器范围内设置__debug__
变量(不使用shebang标志)的任何其他解决方法也很有趣。在
有些系统不允许
#!
样式行上有多个参数。在任何情况下,“env hack”都不是官方推荐的解决路径问题的方法——处理这个问题的首选方法是让install重写#!
行,以引用/bin/python
,/usr/bin/python
,这是适合系统的。在http://pubs.opengroup.org/onlinepubs/009695399/utilities/sh.html
制作一个小的shell脚本如何:
Python:
然后更改脚本以使用:
^{pr2}$还要注意,将环境变量
PYTHONOPTIMIZE
设置为非空字符串与使用-O
标志相同。从man python
手册页:要稍微扩展unutbu所说的内容,可以选择在运行时初始化
PYTHONOPTIMIZE
。这适用于所有现代贝壳:为了完整起见:
^{pr2}$相关问题 更多 >
编程相关推荐