python中#!/usr/bin/python與#!/usr/bin/env python的區別

CoXie發表於2019-02-16

目的是在執行python指令碼的時候告訴作業系統我們要用python直譯器去執行py指令碼

所以我們在第一句往往會寫如下兩句中的其中一句:


#!/usr/bin/python

>#!/usr/bin/env python

就是說在沒有在執行程式時指出用什麼程式執行py指令碼時,系統會去呼叫python程式來執行。

舉個簡單的例子: 我們在linux環境下寫一個最簡單的python指令碼 vim hello.py

#!/usr/bin/python     

或者#!/usr/bin/env python

print ‘ helloworld! 

編寫完成後正常我們在會輸入命令: python hello.py來執行這個指令碼,但是因為有了第一行的宣告,所以我們只要是給這個py指令碼新增可執行許可權,那我們就可以直接 ./hellp.py 來執行了。

  在這裡還是要推薦下我自己建的Python開發學習群:725479218,群裡都是學Python開發的,如果你正在學習Python ,小編歡迎你加入,大家都是軟體開發黨,不定期分享乾貨(只有Python軟體開發相關的),包括我自己整理的一份2018最新的Python進階資料和高階開發教程,歡迎進階中和進想深入Python的小夥伴

!/usr/bin/python與#!/usr/bin/env python的區別是?

明白了寫第一句語句的初衷後,那就該分析一下兩者的區別了:

.#!/usr/bin/python的意思是說去/usr/bin/目錄下找python去執行

.#!/usr/bin/env python 的意思是在#!/usr/bin/env中找到python的安裝路徑,然後去執行它,這個可執行的python路徑不管是不是在/usr/bin下,用法比較靈活,而#!/usr/bin/python就寫成了絕對路徑,只能去/usr/bin下找。

結論:推薦使用 #!/usr/bin/env python

另外解決中文輸出的問題,應該在第二行制定編碼位utf-8,這樣就解決了中文報錯的問題

即,在py指令碼開頭我們應該寫如下兩句語句來指定執行環境和編碼:


#!/usr/bin/env python

#-*-coding:utf-8-*-

相關文章