1. 程式人生 > >【Python】#!/usr/bin/python 和 #!/usr/bin/env

【Python】#!/usr/bin/python 和 #!/usr/bin/env

大部分python檔案的頭部都會寫上 #!/usr/bin/python 或者 #!/usr/bin/env ,這個語句主要和執行模式有關,

如果我們用普通執行模式例如(linux) : python *.py 那麼這個語句在此執行模式下無效。如果想讓python程式像普通程式一樣執行,例如:./*.py (檔案要有可執行許可權chmod a+x *.py),這個語句就起作用了,他用來為指令碼語言指定直譯器,通常認為用 #!/usr/bin/env python 要比 #!/usr/bin/python 更好,因為 python 直譯器有時並不安裝在預設路徑,例如在虛擬環境中。

解釋:

#!/usr/bin/env python

這種寫法在你機器上安裝了多個版本的python的時候有意義,這樣宣告的時候,會去取你機器的 PATH 中指定的第一個 python 來執行你的指令碼。如果這時候你又配置了虛擬環境的話,那麼這樣寫可以保證指令碼會使用你虛擬環境中的 python 來執行。

#!/usr/bin/python
表示寫死了就是要 /usr/bin/python 這個目錄下 python 來執行你的指令碼。這樣寫程式的可移植性就差了,如果此路徑下python命令不存在就會報錯。

所以一般情況還是用第一種寫法。

來源:Python 頭部 #!/usr/bin/python 和 #!/usr/bin/env 的區別