1

Python 程序如何确定它是否在 Unix 系统上作为可执行文件执行而不是作为脚本调用?

./program.py

代替

python ./program.py

'/program' insys.argv[0]无法区分示例情况。

4

2 回答 2

1

一个有点 hackish 的解决方案是在 shebang 行中添加一个环境变量来表明这一点program.py

#!/usr/bin/env noscript=True python
import os
if os.getenv('noscript'):
    print("called as executable")
else: 
    print("called as script")
于 2013-03-02T00:14:27.817 回答
0

真的没有区别。如果您设置了可执行位,操作系统最终会完全按照您在命令行上所做的操作——它确实是python script.py. 唯一的区别是操作系统查看第一行#!以精确确定要运行的 python 版本。

于 2013-03-02T00:24:31.490 回答