Python3 shebang行没有按预期工作

时间:2017-08-01 18:02:58

标签: python python-3.x unix solaris

我遇到以下问题在Solaris环境中运行Python脚本。

看来我在shebang行上做了一些不正确的事情,但我不知道这是Python 3问题还是命令行问题。

但是我怀疑它与shebang行有关,因为当我在命令行显式运行Python解释器时没有问题。

路径/opt/python3.3.2/bin/python3.3是我的系统管理员选择放置Python的位置,我不知道这个位置在Solaris上有问题。

$ uname -a
SunOS ... 5.10 Generic_150401-49 i86pc i386 i86pc Solaris

$ cat test.py
#!/opt/python3.3.2/bin/python3.3
import sys
print("hi")


$ ./test.py
./test.py: line 2: import: command not found
./test.py: line 3: syntax error near unexpected token `"hi"'
./test.py: line 3: `print("hi")'

$ /opt/python3.3.2/bin/python3.3 test.py
hi

编辑:我可以确认test.py中的行结尾是Unix

编辑2: od输出

$ od -c -N 30 test.py
0000000   #   !   /   o   p   t   /   p   y   t   h   o   n   3   .   3
0000020   .   2   /   b   i   n   /   p   y   t   h   o   n   3
0000036

编辑3: shell是bash

$ echo $0
/bin/bash

1 个答案:

答案 0 :(得分:3)

重要的一切都发生在评论中。让我简单总结一下。

在彻底检查了shebang线本身是否正确写入之后,考虑了其他系统中的类似错误 - 我所知道的。

事实证明,Solaris受到与讨论和解决here相同的问题的影响。摘要: shebang行要求解释器是二进制文件,而不是另一个脚本