我在TextWrangler中运行Python正常,但在Mac终端中不行

1 投票
2 回答
7265 浏览
提问于 2025-04-17 13:26

这是一些Python代码:

"<stdin>"
#!/usr/bin/env
print "Hello world!" 
print "How are you?" 

上面的代码我在一个脚本里用了,在TextWrangler里运行没问题,但放到终端里就出错了。

这是为什么呢?是不是跟我打开文件的方式有关?

2 个回答

1

#! 开头的那一行在Unix系统中被称为 shebang行。根据定义,你的shebang有两个问题:

  1. shebang必须是脚本的第一行,但你把它放在了第二行。
  2. 如果你想用Python来执行这个脚本,你需要提供Python的绝对路径(比如 #!/usr/bin/Python),或者使用一个命令来找到Python的路径(比如 #!/usr/bin/env Python),注意这里的'Python'是给 env这个工具的参数。
3

/usr/bin/env 不是指向 Python 的正确路径。很可能,开头的那一行应该是:

#!/usr/bin/env python

我很确定这行需要放在第一行,所以把 "<stdin>" 这一行删掉(反正 Python 也会忽略它)。

另外,确保你已经给脚本设置了可执行权限: chmod +x /path/to/script.py

撰写回答