2021-05-12 14:32:11
#!/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
之後就能正常執行了。
相關文章