記錄下自己在安裝 python Dlib時踩得坑.
其中參考了這邊文章
http://www.itdecent.cn/p/3e0b7d1ddc56
安裝dlib 需要好多的依賴!!
$ brew install openblas
我就是沒有安裝這個所以報奇怪的錯誤問題...
$ brew install opencv
安裝dlib
我用pip安裝dlib各種有問題 相信有不少人也是.所以我就先把pip安裝的dlib卸載了 然后到
https://github.com/davisking/dlib下載了源文件
下載后解壓,安裝dlib
cd dlib/examples
mkdir build
cd build
cmake ..
cmake --build . --config Release
安裝python模塊
cd dlib
sudo python setup.py install
安裝的時候 我就又出錯了!!!
Call Stack (most recent call first):
/usr/local/Cellar/cmake/3.9.1/share/cmake/Modules/FindBoost.cmake:875 (_Boost_COMPONENT_DEPENDENCIES)
/usr/local/Cellar/cmake/3.9.1/share/cmake/Modules/FindBoost.cmake:1503 (_Boost_MISSING_DEPENDENCIES)
/Users/joe/Downloads/dlib-master/dlib/cmake_utils/add_python_module:74 (FIND_PACKAGE)
CMakeLists.txt:9 (include)
-- Could NOT find Boost
找不到boost!!!明明之前已經(jīng)通過brew安裝過boost 跟 boostpython的 怎么跟我說找不到!!??
于是根據(jù)提示
To compile Boost.Python yourself download boost from boost.org and then go into the boost root folder
--and run these commands:
--./bootstrap.sh --with-libraries=python
--./b2
--sudo ./b2 install
自己編譯了一份安裝成功..當(dāng)我以為萬事大吉的時候 運行軟件 尼瑪又報錯了
unsafe use of relative rpath libboost_python.dylib
我擦 這是什么鬼 搜索一番之后說是不能相對路徑 需要我們手動改成絕對路徑
sudo install_name_tool -change libboost_python.dylib /usr/local/lib/libboost_python.dylib /Library/Python/2.7/site-packages/dlib-19.4.99-py2.7-macosx-10.12-intel.egg/dlib/dlib.so
sudo install_name_tool -change 需要改動的路徑 修改后的路徑 需要修改的so文件 上面的命令就是這個格式 可以自己手動調(diào)整 改動后可意用 otool -L /Library/Python/2.7/site-packages/dlib-19.4.99-py2.7-macosx-10.12-intel.egg/dlib/dlib.so 這個來看看自己替換成功沒
在運行程序 還是報錯TypeError: imread() got an unexpected keyword argument 'mode'
看了看 原來是因為mac自帶的模塊版本太低了 我們需要更新 但是自帶的不能直接pip update 我們需要
點擊Mac電腦的蘋果圖標(biāo)
選擇 重新啟動
按住 command+R,直到進入還原模式
選擇實用工具,然后點擊 終端
輸入 csrutil disable 按下回車
重啟電腦
這樣就將“SIP“關(guān)閉了。
然后我們使用 pip 安裝升級numpy、scipy等相關(guān)的包。
問題是解決了,但是如果到這里就認(rèn)為已經(jīng)萬事大吉了,其實是大錯特錯了。蘋果官方之所以設(shè)置“SIP“主要是考慮到系統(tǒng)的安全性問題。所以,我們最好還是將“SIP“打開。打開的方式如下:
1. 點擊Mac電腦的蘋果圖標(biāo)
2. 選擇 重新啟動
3. 按住 command+R,直到進入還原模式
4. 選擇實用工具,然后點擊 終端
5. 輸入 csrutil enable 按下回車
6. 重啟電腦
萬事大吉,收工睡覺!