Python程序如何确定它是否作为Unix系统上的可执行文件执行而不是作为脚本调用?
./program.py
而不是
python ./program.py
' /程序'在sys.argv[0]
中无法区分示例案例。
答案 0 :(得分:1)
一个有点hackish的解决方案是添加一个环境变量来指示program.py
中的shebang行:
#!/usr/bin/env noscript=True python
import os
if os.getenv('noscript'):
print("called as executable")
else:
print("called as script")
答案 1 :(得分:0)
确实没有区别。如果设置可执行位,则操作系统最终会完全按照您在命令行上执行的操作 - 它执行python script.py
。唯一的区别是os查看以#!
开头的第一行,以准确确定要运行的python版本。