Mac安裝python3,通過終端直接運行.py文件報錯bad interpreter: Operation not permitted

事出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的寫法是沒問題的,原因可能是別的。

這時候我發現我的.py文件的圖標好像有點問題
屏幕快照 2017-12-28 下午9.12.33.png

它的默認打開方式是xcode。

在終端輸入指令查看這個文件的拓展屬性
xattr -l test.py

屏幕快照 2017-12-28 下午9.21.10.png

發現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
運行成功

感謝波哥大晚上幫我解決問題帶我出坑,今晚能睡個好覺了!!!
5189D17CBE4225B3B08114D5A4185F4F.png
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1.創建文件夾 !/bin/sh mkdir -m 777 "%%1" 2.創建文件 !/bin/sh touch...
    BigJeffWang閱讀 10,165評論 3 53
  • 用 python 解釋器來編程從 Python 解釋器退出再進入,那么你定義的所有的方法和變量就都消失了。 為此...
    chen_000閱讀 540評論 0 3
  • 今天晚飯吃太飽拉著朋友四處溜達。走到足球場上忽然跑來一只狗狗朝著我們這邊跑了過來。我有點怕就繞著朋友到處躲,我躲到...
    嘉欣妹閱讀 206評論 0 0
  • 讓我們一起,迎著朝陽奔跑 也許會跌倒,也許會受傷 但這都不重要 青春的饋贈哪次不帶著青澀傷口? 我們在路上,前方是...
    無刺之猬Lola閱讀 118評論 0 0
  • 想了半天,不知道如何命名。最簡單真實的就是我想要表達的,所以直接命題《我有一個好婆婆》 ...
    陳鶴丹閱讀 1,080評論 2 4