Python学习之 !/usr/bin/python 和 !/usr/bin/env python区别
生活随笔
收集整理的這篇文章主要介紹了
Python学习之 !/usr/bin/python 和 !/usr/bin/env python区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
如果直接采用 python file.py 的方式運行腳本的話,有沒有shebang都無所謂,因為我們自己直接指定了該腳本的解釋器,即python。但是,如果以 ./file.py 的方式運行的話,一開始的兩種寫法就有一些區別了。
通常我們認為 #!/usr/bin/python 采用了絕對路徑的寫法,即指定了采用/usr/bin/python 解釋器來執行該腳本。一般類Unix系統下,python解釋器都位于該路徑,不幸的是如果python解釋器不在該路徑下的話,./file.py 就無法運行。而 #!/usr/bin/env python 的寫法指定從PATH環境變量中來查找python解釋器的位置,因此只要環境變量中存在,該腳本即可執行。
綜述所述,一般情況下采用 #!/usr/bin/env python 的寫法更好,更加具有通用性。 擴展---shebang: 在計算機科學中,Shebang是一個由井號和嘆號構成的字符串行,其出現在文本文件的第一行的前兩個字符。 在文件中存在Shebang的情況下,類Unix操作系統的程序載入器會分析Shebang后的內容,將這些內容作為解釋器指令,并調用該指令,并將載有Shebang的文件路徑作為該解釋器的參數。
通常我們認為 #!/usr/bin/python 采用了絕對路徑的寫法,即指定了采用/usr/bin/python 解釋器來執行該腳本。一般類Unix系統下,python解釋器都位于該路徑,不幸的是如果python解釋器不在該路徑下的話,./file.py 就無法運行。而 #!/usr/bin/env python 的寫法指定從PATH環境變量中來查找python解釋器的位置,因此只要環境變量中存在,該腳本即可執行。
綜述所述,一般情況下采用 #!/usr/bin/env python 的寫法更好,更加具有通用性。 擴展---shebang: 在計算機科學中,Shebang是一個由井號和嘆號構成的字符串行,其出現在文本文件的第一行的前兩個字符。 在文件中存在Shebang的情況下,類Unix操作系統的程序載入器會分析Shebang后的內容,將這些內容作為解釋器指令,并調用該指令,并將載有Shebang的文件路徑作為該解釋器的參數。
轉載于:https://www.cnblogs.com/RescueWang/p/7810494.html
總結
以上是生活随笔為你收集整理的Python学习之 !/usr/bin/python 和 !/usr/bin/env python区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Alpha冲刺Day5
- 下一篇: R语言处理1975-2011年的人口信息