记录下自己在安装 python Dlib时踩得坑.
其中参考了这边文章
http://www.jianshu.com/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!!!明明之前已经通过brew安装过boost 跟 boostpython的 怎么跟我说找不到!!??
于是根据提示
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
自己编译了一份安装成功..当我以为万事大吉的时候 运行软件 尼玛又报错了
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文件 上面的命令就是这个格式 可以自己手动调整 改动后可意用 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电脑的苹果图标
选择 重新启动
按住 command+R,直到进入还原模式
选择实用工具,然后点击 终端
输入 csrutil disable 按下回车
重启电脑
这样就将“SIP“关闭了。
然后我们使用 pip 安装升级numpy、scipy等相关的包。
问题是解决了,但是如果到这里就认为已经万事大吉了,其实是大错特错了。苹果官方之所以设置“SIP“主要是考虑到系统的安全性问题。所以,我们最好还是将“SIP“打开。打开的方式如下:
1. 点击Mac电脑的苹果图标
2. 选择 重新启动
3. 按住 command+R,直到进入还原模式
4. 选择实用工具,然后点击 终端
5. 输入 csrutil enable 按下回车
6. 重启电脑
万事大吉,收工睡觉!