1.brew install --build-from-source -vd boost boost-python

这一步出错:libtool: unrecognized option `-static'

编译过程中调用了"libtool" -static -o "xx.a" "xxx.o" 命令进行静态链接。

MERRICKMEI-MB0:/ merrickmei$ brew unlink libtool
Unlinking /usr/local/Cellar/libtool/2.4.6_1... symlinks removed
MERRICKMEI-MB0:/ merrickmei$ which libtool
/usr/local/bin/libtool
MERRICKMEI-MB0:/ merrickmei$ whereis libtool
/usr/bin/libtool MERRICKMEI-MB0:/ merrickmei$ /usr/local/bin/libtool -static -o
libtool: unrecognized option `-static'
libtool: Try `libtool --help' for more information. MERRICKMEI-MB0:/ merrickmei$ /usr/bin/libtool -static -o
error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool: missing argument to: -o option
Usage: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool -static [-] file [...] [-filelist listfile[,dirname]] [-arch_only arch] [-sacLT] [-no_warning_for_no_symbols] MERRICKMEI-MB0:/ merrickmei$ ls -l /usr/local/bin/libtool
-rwxrwxrwx root admin : /usr/local/bin/libtool

可见,/usr/local/bin/libtool不支持-static,而/usr/bin/libtool支持-static选项。

参考:https://github.com/Homebrew/legacy-homebrew/issues/28442

MERRICKMEI-MB0:/ merrickmei$  /usr/local/bin/libtool  --version
ltmain.sh (GNU libtool) 2.2.6b
Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, /usr/local/bin/libtool 是之前自己make install手动编译安装的。
而/usr/bin/libtool 是xcode自带的。 同样make uninstall libtool:
cd libtool-2.2.6b
./configure --prefix=/usr/local
make
sudo make uninstall 虽然有错误,但是/usr/local/bin/libtool 已经不见了。which libtool,whereis libtool都只显示/usr/bin/libtool

再次执行brew install --build-from-source -vd boost boost-python 就发现ok了,continue...

2.Python接口,进入caffe/python目录

for req in $(cat requirements.txt); do pip install $req; done

3.make

Makefile.config中去掉CPU_ONLY := 1的注释
cp Makefile.config.example Makefile.config
make all
make test
make runtest

make runtest出现绿色RUN OK

4.pycaffe

 MERRICKMEI-MB0:caffe merrickmei$ make pycaffe
CXX/LD -o python/caffe/_caffe.so python/caffe/_caffe.cpp
python/caffe/_caffe.cpp::: fatal error: 'numpy/arrayobject.h' file not found
#include <numpy/arrayobject.h>

解决:将numpy/arrayobject.h所在的路径/usr/local/lib/python2.7/site-packages/numpy/core/include 添加到

Makefile.config中的PYTHON_INCLUDE

PYTHON_INCLUDE := /usr/include/python2.7 \
/usr/lib/python2.7/dist-packages/numpy/core/include\
/usr/local/lib/python2.7/site-packages/numpy/core/include

再次 make clean,make pycaffe,成功编译。。

添加caffe到PYTHONPATH

export PYTHONPATH=$PYTHONPATH:/Users/work/gitclone/caffe/python

merrickmei$ python
Python 2.7. (default, Jul , ::)
[GCC 4.2. Compatible Apple LLVM 8.0. (clang-800.0.)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import caffe as cf
python(,0x7fffc7e083c0) malloc: *** malloc_zone_unregister() failed for 0x7fffc7dfe000
RuntimeError: module compiled against API version 0xa but this version of numpy is 0x9
Traceback (most recent call last):
File "<stdin>", line , in <module>
File "/Users/work/gitclone/caffe/python/caffe/__init__.py", line , in <module>
from .pycaffe import Net, SGDSolver, NesterovSolver, AdaGradSolver, RMSPropSolver, AdaDeltaSolver, AdamSolver, NCCL, Timer
File "/Users/work/gitclone/caffe/python/caffe/pycaffe.py", line , in <module>
from ._caffe import Net, SGDSolver, NesterovSolver, AdaGradSolver, \
ImportError: numpy.core.multiarray failed to import

http://stackoverflow.com/questions/33859531/runtimeerror-module-compiled-against-api-version-a-but-this-version-of-numpy-is

>>> import numpy as n
>>> n.__path__
['/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy']

>>> import sys


>>> sys.path.insert(1, "/usr/local/lib/python2.7/site-packages")

>>> import numpy
>>> print numpy.__path__
['/usr/local/lib/python2.7/site-packages/numpy']

numpy解决后再import caffe 有碰到错误:

ImportError: No module named skimage.io

因为使用的系统的python,而不是Anaconda Python,决定还是用Anaconda Python

参考:http://www.tuicool.com/articles/FjAnqin





mac 下安装caffe(一)的更多相关文章

  1. mac 下安装caffe(二)

    使用Anaconda Python 1.brew edit opencv args << "-DPYTHON_LIBRARY=#{py_lib}/libpython2.7.#{d ...

  2. Mac 下安装Jenkins

    Mac 下安装Jenkins 开始 Jenkins是一个基于Java开发的一种持续集成工具,用于建工持续重复的工作,功能包括: 持续的软件版本发布/测试项目 监控外部调用执行的工作. 近期打算搭建自动 ...

  3. MAC下安装与配置MySQL

    MAC下安装与配置MySQL   MAC下安装与配置MySQL 一 下载MySQL 访问MySQL的官网http://www.mysql.com/downloads/ 然后在页面中会看到“MySQL ...

  4. Mac下安装UPnP Inspector

    由于工作中需要用到UPnP Inspector这个工具,而这个工具在windows下安装非常简单,在Mac下安装却很麻烦,在此记录安装流程. 这个工具依赖于两个其他的库:Coherence(一个DLN ...

  5. Mac下安装Wireshark,双击闪退

     Mac OS X上使用Wireshark抓包(http://blog.csdn.net/phunxm/article/details/38590561) Mac下安装Wireshark /Appli ...

  6. Mac下安装zshell

    Mac 下安装zshell 什么是shell 大多数命令行用户接触最多的是Bash,因为Bash是各个版本操作系统(Linux&Mac)的默认shell. 查看当前使用的shell $ ech ...

  7. 【高可用HA】Apache (1) —— Mac下安装Apache Httpd到自定义路径(非/etc/apache2)

    Mac下安装Apache Httpd httpd版本: httpd-2.4.17 参考来源: Tomcat Clustering - A Step By Step Guide Apache HTTP ...

  8. 《OD大数据实战》mac下安装nginx+php

    一.mac安装nginx + php + php-fpm  或apache + php 1. Mac 下 Nginx.MySQL.PHP-FPM 的安装配置 2. Mac下安装LNMP(Nginx+P ...

  9. Mac下安装HBase及详解

    Mac下安装HBase及详解 1. 千篇一律的HBase简介 HBase是Hadoop的数据库, 而Hive数据库的管理工具, HBase具有分布式, 可扩展及面向列存储的特点(基于谷歌BigTabl ...

随机推荐

  1. 第一节:重写(new)、覆写(overwrite)、和重载(overload)

    一丶重写<NEW> 子类重写父类方法,方法里加new, eg: public new void CommonMethord1(string msg){} 子类继承父类中的普通方法,如果在子 ...

  2. mysql运维常用

    一.用户授权 用户授权主要指: 1.可以限制用户访问那些库.表 2.可以限制用户对库.表执行select.create.delete.alter.drop等操作 3.可以限制用户登陆的IP.IP段.或 ...

  3. MySql报Packet for query is too large错误

    mysql中执行sql的时候报以下错误:Packet for query is too large (1354 > 1024) 原因是mysql一次接收的报文太长,需要调整服务器参数max_al ...

  4. Python学习之前

    编程语言的分类: 1.机器语言:直接以0和1编写指令代码,计算机能直接识别处理: 特点:运行速度最快,太复杂,开发效率低,可执行操作最多. 2.汇编语言:本质上依然是机器语言,用英文代替0和1,更容易 ...

  5. Python selenium chrome打包exe后禁用控制台输出滚动日志

    Python selenium chrome打包exe后,在运行的过程中,如果遇到需要input()输入时,会发现被不断滚动刷新的日志把命令行输入快速顶掉了,通过查阅资料不断实践,发现以下方法有效: ...

  6. python 读取指定文件信息并拼接

    python 读取指定文本并拼接成指定的格式 # -*- coding: utf-8 -*- import os def getHelloWorld(path, fileName): "&q ...

  7. 解决ASP.NET Core部署到IIS,更新项目"另一个程序正在使用此文件,进程无法访问"

    问题:部署到IIS上的ASP.NET Core项目,在更新的时候会进程占用的错误 初步解决方案: 1,关闭应用程序池 2,关闭网站 3,更新项目 缺点:网站没法访问,部署项目停的时间过长 查询官方文档 ...

  8. Maven_真的需要吗?

    1.真的需要吗? Maven 是干什么用的?这是很多同学在刚开始接触 Maven 时最大的问题.之所以会提出这个问题,是因为即使不使用 Maven 我们仍然可以进行 B/S 结构项目的开发.从表述层. ...

  9. Spring MVC学习总结(12)——Spring MVC集成Swagger时报错{"schemaValidationMessages":[

    在springmvc结合swagger的时候,如果将项目部署到服务器上就会出现问题出现下面的图标: 点开会报错误信息: schemaValidationMessages":[{"l ...

  10. ssc项目Python爬虫心得

    ###今日心得 ####time.datetime 1.字符串格式到标准化格式:time.strptime(str, "%Y%m%d") 2.今天的标准化格式:today = da ...