Python:尝试创建unix命令行可执行文件的简单示例 - 为什么它不起作用?

时间:2013-08-28 00:19:13

标签: python unix executable

PROMPT> which python
/usr/local/bin/python

PROMPT> ls -al
total 8
drwxr-xr-x   3 jon   102B Aug 27 20:15 ./
drwxrwxr-x  21 jon   714B Aug 27 20:15 ../
-rwxr-xr-x   1 jon    54B Aug 27 20:15 build*

PROMPT> cat build
#! /usr/local/bin/ python
print 'hello world - build'

PROMPT> ./build
-bash: ./build: /usr/local/bin/: bad interpreter: Permission denied

我做错了什么?

3 个答案:

答案 0 :(得分:2)

摆脱#! /usr/local/bin/ python中的空格,使其成为#!/usr/local/bin/python。您可能还想将其设为#!/usr/bin/env python,这将选择first Python interpreter in your path,但不建议用于已发布的模块。 (虽然,/usr/local/bin/python)也没有。

答案 1 :(得分:2)

你的shebang有太多的空间。尝试

#!/usr/local/bin/python

另一个常见的表单调用'env'来查找要使用的python,这样你就不依赖于根据python的安装方式而有所不同的路径。

#!/usr/bin/env python

答案 2 :(得分:2)

/bin/python之间有空格。

HTH,菲尔