2019獨角獸企業重金招聘Python工程師標準>>>
起因
今天打開xcode想要開始繼續寫項目的時候悲劇了.
Loading a plug-in failed. The plug-in or one of its prerequisite plug-ins may be missing or damaged and may need to be reinstalled.
嘗試用終端打開看看報錯信息
open /Applications/Xcode.app/Contents/MacOS/Xcode
報錯詳情
/Applications/Xcode8.app/Contents/PlugIns/DebuggerLLDB.ideplugin), error = Error Domain=NSCocoaErrorDomain Code=3587 "dlopen_preflight(/Applications/Xcode8b.app/Contents/PlugIns/DebuggerLLDB.ideplugin/Contents/MacOS/DebuggerLLDB): Library not loaded: /System/Library/Frameworks/Python.framework/Versions/2.7/Python
Referenced from: /Applications/Xcode8.app/Contents/SharedFrameworks/LLDB.framework/Versions/A/LLDB Reason: no suitable image found. Did find:
/System/Library/Frameworks/Python.framework/Versions/2.7/Python: code signing blocked mmap
嘗試
想都沒想,肯定是昨晚在升級python的時候 刪掉了舊版的python2.7導致的. 于是去python官網下載了python2.7.13,安裝配置之后還是沒用.查了一下macOS10.12原始版本是2.7.10,下載安裝之后還是沒用.
探索
然后google一下(科學上網樓主用easysocks+shadowsocksx-ng)
在StackOverflow找到也有個哥們遇到相同問題.
于是用他說的方法下在系統鏡像去里面找找原版.當時在/system/library/Framework/文件夾下自由系統相關的庫,到是有一個installation文件夾,里面有一些安裝包,由于安裝包太大(4G),他也沒說在系統那個目錄下,放棄嘗試. 我陷入了沉思,問下了技術交流群,有人說重裝xcode,我覺得不行,這并不是xcode本身的為題,而是擴展庫出錯.
醒悟
難道apple提供的python和python官網下載的不一樣?帶著這個疑問查看了一下目錄結構果然.
macOS自帶多了幾個文件夾:_CodeSignature,Extras等猜測應該是用來打包簽名用的,這也就解釋了報錯code signing blocked mmap的原因
成功恢復
現在要去哪里找原版呢,之前是直接rm -f刪掉的沒有后悔藥,還好有做TimeMachine備份,終于在備份盤中找到原版python2.7,成功恢復.
總結:假如你需要修改系統庫或者環境變量是一定要做好備份,筆記記好還原步驟.突然有一種想法:apple在macOS中內置python,可能是因為其他軟件會依賴他,那ruby呢會不會也有一些功能是依賴它實現的呢,可以研究一下.