Mac下配置caffe的Python接口 遇到的问题及解决办法

来源:互联网 发布:剑灵优化补丁 编辑:程序博客网 时间:2024/04/28 13:43

前言:

在mac上装caff,在网上找教程,虽然教程很多,但是坑也不少。推荐一篇不错的:http://www.jianshu.com/p/cc16e2977e27


刚开始是想编译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、解决问题1后运行pytest出现问题:ImportError: No module named skimage.io   ImportError:No module named google.protobuf

解决方法:运行命令: sudo pip install protobuf(如果没有安装pipsudo easy_install pip)

  sudo pip scikit-image

那么问题来了如果你是10.10之后的系统就面临一个系统权限问题

重启电脑,按住command + R进入恢复模式,选择左上角实用工具下的终端,输入csrutil disable回车,reboot,重启完美解决权限问题(csrutil enabl恢复SIP机制

3、Exception: "dot" not found in path.

解决方法: brew installgraphviz(不能用pip安装)

pip uninstall pyparsing 
pip install -Iv https://pypi.python.org/packages/source/p/pyparsing/pyparsing-1.5.7.tar.gz#md5=9be0fcdcc595199c646ab317c1d9a709 
pip install pydot

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!


如有问题,欢迎留言讨论


阅读全文
1 0
原创粉丝点击