首頁 > 軟體

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

2020-06-16 16:40:58

指令碼語言的第一行,目的就是指出,你想要你的這個檔案中的程式碼用什麼可執行程式去執行它,就這麼簡單

#!/usr/bin/Python是告訴作業系統執行這個指令碼的時候,呼叫/usr/bin下的python直譯器;
#!/usr/bin/env python這種用法是為了防止作業系統使用者沒有將python裝在預設的/usr/bin路徑裡。當系統看到這一行的時候,首先會到env設定裡查詢python的安裝路徑,再呼叫對應路徑下的直譯器程式完成操作。
#!/usr/bin/python相當於寫死了python路徑;
#!/usr/bin/env python會去環境設定尋找python目錄,推薦這種寫法

 

CentOS7.2下設定了python3.6.2後,折騰了兩個多小時,環境設定好了之後,早晨起來執行了一段指令碼

指令碼內容

#!/usr/bin/env python

name = input("Input your name:")

print ("Myname is %s" %name)

 

結果執行的時候報錯

開始以為是/usr/bin/env python預設還是python2(確實是如此)

改成/usr/bin/python 也不行

於是開啟python,發現python執行的版本是python2.7.5

不知為何,python3的軟連線沒有生效

原因是設定python3的環境時,中途又編譯安裝了python3,導致前面設定的軟連線失效

重新設定軟連線

ln -s /usr/local/python/bin/python3 /usr/bin/python

之後就能正常執行了。


IT145.com E-mail:sddin#qq.com