Mac下配置caffe的Python介面 遇到的問題及解決辦法
前言:
剛開始是想編譯matlab介面的,畢竟對matlab比較熟悉,但是一直報錯,在網上也找不到任何有效的解決辦法,逼於無奈轉戰python。
編譯python也不是一帆風順的,剛開始在makeFileConfig中配置各種路徑,make時報錯,網上找不到解決方法,所以改用cmake。(這個過程是非常痛苦的)
在此建議用cmake進行編譯,會省去很多不必要的麻煩,而且配置簡單。
進入正題...
本文主要提供編譯過程中出現的問題的解決方法
1、make pytest時報錯
/bin/sh:python2: command not found
make[3]:*** [CMakeFiles/pytest] Error 127
make[2]:*** [CMakeFiles/pytest.dir/all] Error 2
make[1]:*** [CMakeFiles/pytest.dir/rule] Error 2
make:*** [pytest] Error 2
錯誤原因:找不到python2命令,Python版本問題
解決方法:到/usr/bin中檢視是否有python2檔案,沒有的話肯定提示命令找不到。cd到出問題檔案的路徑:build/CMakeFiles/putest.dir/build.make 修改python2為你bin裡面有的python版本(我的是python2.7),重新執行,問題解決。
2、解決問題
解決方法:執行命令: sudo pip install protobuf(如果沒有安裝pip:sudo easy_install pip)
sudo pip scikit-image
那麼問題來了,如果你是10.10之後的系統,就面臨一個系統許可權問題。
重啟電腦,按住command + R進入恢復模式,選擇左上角實用工具下的終端,輸入csrutil disable回車,reboot,重啟完美解決許可權問題(csrutil
3、Exception: "dot" not found in path.
解決方法: brew installgraphviz(不能用pip安裝)
4、'numpy/arrayobject.h' file not found
Pip install numpy
如果你明明裝了numpy,卻報錯,重新cmake..
5、執行make pytest時python崩潰
原因:mac自帶python版本bug,下載python2.7.13,然後重新跑。(注意不要解除安裝自帶python,會出現很多問題,血的教訓!)自己裝的python會裝在/Library目錄下,系統自帶的在/System/Library下,跑程式時選擇的環境是python2.7.13
安裝2.7.13後,如果cmake時Python配置是這樣的
libraries路徑還是系統自帶的Python2.7.10,則需要修改CMakeCache.txt
如下:
注:自己裝的2.7.13在local下並沒有include/python2.7和lib/libpython2.7.dylib,需要自己將2.7.13的相應檔案連結到local下,命令為:
sudo ln -s /Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 /usr/local/include/python2.7
sudo ln -s /Library/Frameworks/Python.framework/Versions/2.7/Python /usr/local/lib/libpython2.7.dylib
修改好CMakeCache.txt後重新make pytest,ok!
如有問題,歡迎留言討論