python腳本中的#!/usr/bin/python
估計有很多人注意過一些python腳本開頭有這麼行東東:
#!/usr/bin/python
它是用來幹嗎的?貌似沒有它對腳本功能也沒啥影響。它是用來指定用什麼解釋器運行腳本以及解釋器所在的位置。
以test.py爲例,腳本內容以下:
def test():
print 'hello, world'
if __name__ == "__main__":
test()
運行腳本:
python test.py
輸出:
hello, world
換一種方法運行:
./test.py
會提示出錯,文件無可執行權限:
-bash: ./test.py: Permission denied
將文件設爲可執行:
chmod +x test.py
繼續運行:
./test.py
提示:
./test.py: line 1: syntax error near unexpected token `('
./test.py: line 1: `def test():'
那是由於系統默認該腳本是shell腳本,把它當shell語句執行,固然失敗了。
在前面加上
#!/usr/bin/python
申明l這是個python腳本,要用python解釋器來運行:
./test.py
輸出:
hello, world
這個東東經常使用在cgi腳本中,apache啓動cgi腳本時就靠它來知道這是個python腳本,執行它須要的python解釋器路徑在哪裏。
有時候寫 #!/usr/bin/python 仍是不行,很簡單,由於python解釋器沒有裝在/usr/bin/目錄,改爲其所在目錄就好了,或者更通用的方法是:
#!/usr/bin/env python