事出mac系統自帶的python是2.7版本的,但是我又希望使用新版的python3進行編程,于是我按照網上的教程安裝了python3,但是裝完之后我發現我無法使用終端直接運行.py文件。報錯bad interpreter: Operation not permitted,折騰了一晚也沒找到解決方案(好在今晚解決了。。。)將解決過程貼出來給大家參考一下。
解決過程如下:
我的python3是后來安裝的,并沒有安裝在/usr/bin目錄下所以不能通過
#!/usr/bin/env python3來獲取python3的運行環境。先確認是不是運行環境錯誤導致的報錯。
終端輸入
which python3
顯示
/usr/local/bin/python3
將shebang寫成絕對路徑
#!/usr/local/bin/python3
在終端通過./filename.py的方式運行發現還是報bad interpreter: Operation not permitted,但是這個shebang的寫法是沒問題的,原因可能是別的。
它的默認打開方式是xcode。
在終端輸入指令查看這個文件的拓展屬性
xattr -l test.py
發現com.apple.quarantine后面有一串長長的數,這個就是導致bad interpreter: Operation not permitted的原因,不同的打開方式會給文件加入不同的拓展屬性,這個拓展屬性會導致python的解釋器解釋失敗。
解決方案
將.py文件的默認打開方式改成Python Launcher 3,雙擊test.py文件發現運行成功。證明shebang和代碼都沒有問題。然后再測試通過終端./test.py運行有沒有問題。結果依舊報錯bad interpreter: Operation not permitted,基本確定了是文件的拓展屬性導致的解釋錯誤。
使用指令刪除這個文件的拓展屬性
xattr -d com.apple.quarantine ./test.py
測試一下
./test.py
運行成功