关于shell:Python – 如果没有#!/ usr / bin / python,代码就无法运行

Python - Code does not run without #!/usr/bin/python

本问题已经有最佳答案,请猛点这里访问。

好吧,我对python还不熟悉,但是如果行

1
#!/usr/bin/python

不在文件开头。为什么会这样?这是什么意思?我以为它是用来表示一个Python版本的,如果安装了多个版本的话。

1
2
3
4
5
6
7
8
#!/usr/bin/python
def main():
    a = [1,2,3]

    print a

if __name__ =="__main__":
  main()

省略了!/usr/bin/python仅当我使用

Ubuntu上的./test.py

但是,如果我使用python命令运行,那么它在没有/usr/bin行的情况下运行良好。


脚本的第一行以#!开头是shebang(有时称为hash bang)。

下面的可执行路径表示应该使用哪个解释器来处理下面的代码(在您的例子中,是/usr/bin/python)。

如果使用python test.py从shell运行脚本,则不需要shebang—可执行文件是python并且脚本作为参数传递给它。


在Unix中,您可以告诉一个文件,如果它包含脚本语言(在您的例子中是python),应该如何打开它。

这条线被称为shebang。


./filename用于运行可执行文件,要执行可执行文件,需要指定所需的应用程序。然而,在使用python filename.py时,您已经指定了要使用的应用程序,在本例中就是python。