python #!/usr/bin/python作用
#!/usr/bin/python
指定用什么解釋器運(yùn)行腳本以及解釋器所在的位置
# -*- coding: utf-8 -*-
用來指定文件編碼為utf-8的
PEP 0263 -- Defining Python Source Code Encodings
http://www.python.org/dev/peps/pep-0263/
估計(jì)有不少人注意過一些python腳本開頭有這么行東東:
#!/usr/bin/python
它是用來干嘛的?貌似沒有它對(duì)腳本功能也沒啥影響。它是用來指定用什么解釋器運(yùn)行腳本以及解釋器所在的位置。
以test.py為例,腳本內(nèi)容如下:
def test():
? ? ? ? print 'hello, world'
if __name__ == "__main__":
? ? ? ? test()
運(yùn)行腳本:
python test.py
輸出:
hello, world
換一種方法運(yùn)行:
./test.py
會(huì)提示出錯(cuò),文件無可執(zhí)行權(quán)限:
-bash: ./test.py: Permission denied
將文件設(shè)為可執(zhí)行:
chmod +x test.py
繼續(xù)運(yùn)行:
./test.py
提示:
./test.py: line 1: syntax error near unexpected token `('
./test.py: line 1: `def test():'
那是因?yàn)橄到y(tǒng)默認(rèn)該腳本是shell腳本,把它當(dāng)shell語句執(zhí)行,當(dāng)然失敗了。
在前面加上
#!/usr/bin/python
申明l這是個(gè)python腳本,要用python解釋器來運(yùn)行:
./test.py
輸出:
hello, world
這個(gè)東東常用在cgi腳本中,apache啟動(dòng)cgi腳本時(shí)就靠它來知道這是個(gè)python腳本,執(zhí)行它需要的python解釋器路徑在哪里。
有時(shí)候?qū)?#!/usr/bin/python 還是不行,很簡(jiǎn)單,因?yàn)閜ython解釋器沒有裝在/usr/bin/目錄,改成其所在目錄就行了,或者更通用的方法是:
#!/usr/bin/env python
?
注意:這個(gè)目錄根據(jù)自己的Python路徑來定;
本人加的語句:#!/root/anaconda3/bin/python
轉(zhuǎn)載自:https://www.cnblogs.com/ocean1100/p/9276011.html
總結(jié)
以上是生活随笔為你收集整理的python #!/usr/bin/python作用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 空except的慎用
- 下一篇: gpu安装记录