記錄下自己在安裝 python Dlib時(shí)踩得坑.
其中參考了這邊文章
http://m.itdecent.cn/p/3e0b7d1ddc56
安裝dlib 需要好多的依賴!!
$ brew install openblas
我就是沒(méi)有安裝這個(gè)所以報(bào)奇怪的錯(cuò)誤問(wèn)題...
$ brew install opencv
安裝dlib
我用pip安裝dlib各種有問(wèn)題 相信有不少人也是.所以我就先把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
安裝的時(shí)候 我就又出錯(cuò)了!!!
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)通過(guò)brew安裝過(guò)boost 跟 boostpython的 怎么跟我說(shuō)找不到!!??
于是根據(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)我以為萬(wàn)事大吉的時(shí)候 運(yùn)行軟件 尼瑪又報(bào)錯(cuò)了
unsafe use of relative rpath libboost_python.dylib
我擦 這是什么鬼 搜索一番之后說(shuō)是不能相對(duì)路徑 需要我們手動(dòng)改成絕對(duì)路徑
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 需要改動(dòng)的路徑 修改后的路徑 需要修改的so文件 上面的命令就是這個(gè)格式 可以自己手動(dòng)調(diào)整 改動(dòng)后可意用 otool -L /Library/Python/2.7/site-packages/dlib-19.4.99-py2.7-macosx-10.12-intel.egg/dlib/dlib.so 這個(gè)來(lái)看看自己替換成功沒(méi)
在運(yùn)行程序 還是報(bào)錯(cuò)TypeError: imread() got an unexpected keyword argument 'mode'
看了看 原來(lái)是因?yàn)閙ac自帶的模塊版本太低了 我們需要更新 但是自帶的不能直接pip update 我們需要
點(diǎn)擊Mac電腦的蘋(píng)果圖標(biāo)
選擇 重新啟動(dòng)
按住 command+R,直到進(jìn)入還原模式
選擇實(shí)用工具,然后點(diǎn)擊 終端
輸入 csrutil disable 按下回車
重啟電腦
這樣就將“SIP“關(guān)閉了。
然后我們使用 pip 安裝升級(jí)numpy、scipy等相關(guān)的包。
問(wèn)題是解決了,但是如果到這里就認(rèn)為已經(jīng)萬(wàn)事大吉了,其實(shí)是大錯(cuò)特錯(cuò)了。蘋(píng)果官方之所以設(shè)置“SIP“主要是考慮到系統(tǒng)的安全性問(wèn)題。所以,我們最好還是將“SIP“打開(kāi)。打開(kāi)的方式如下:
1. 點(diǎn)擊Mac電腦的蘋(píng)果圖標(biāo)
2. 選擇 重新啟動(dòng)
3. 按住 command+R,直到進(jìn)入還原模式
4. 選擇實(shí)用工具,然后點(diǎn)擊 終端
5. 輸入 csrutil enable 按下回車
6. 重啟電腦
萬(wàn)事大吉,收工睡覺(jué)!