python #!/usr/bin/python作用

來源:互聯網
上載者:User

標籤:==   功能   name   目錄   路徑   那是   chmod   env   輸出   

#!/usr/bin/python
指定用什麼解譯器運行指令碼以及解譯器所在的位置

# -*- coding: utf-8 -*-
用來指定檔案編碼為utf-8的
PEP 0263 -- Defining Python Source Code Encodings
http://www.python.org/dev/peps/pep-0263/

估計有不少人注意過一些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

python #!/usr/bin/python作用

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.