【问题标题】:Try to compile numpy against openblas in Yosemite but otool shows that my build is linked with apple's Accelerate Framework尝试在 Yosemite 中针对 openblas 编译 numpy,但 otool 显示我的构建与苹果的 Accelerate Framework 相关联
【发布时间】:2016-06-02 17:41:17
【问题描述】:
  • 操作系统:优胜美地 10.10.5
  • 使用 virtualenv,
  • .bashrc/.bash_profile/.profile全部为空
  • 我已经简单地使用“make && make”安装了 openblas PREFIX=/usr/local/opt/openblas install",表示已安装 在 /usr/local/opt/openblas
  • CUDA 和 CuDNN 均已安装并经过测试。

cd ~/test

ls

numpy-1.10.4  OpenBLAS-0.2.15

export PATH="/opt/local/bin:/opt/local/sbin:/usr/local/Cellar/bin:/usr/local/bin:$PATH"

export PATH="/Developer/NVIDIA/CUDA-7.5/bin:$PATH"

导出 DYLD_LIBRARY_PATH="/Developer/NVIDIA/CUDA-7.5/lib:$DYLD_LIBRARY_PATH"

导出 LDFLAGS=-L/usr/local/opt/openblas/lib

export CPPFLAGS=-I/usr/local/opt/openblas/include

激活我的 virtualenv 后,说 env1:

(env1)~>cd ~/test/numpy-1.10.4

(env1)numpy-1.10.4>cat site.cfg

[openblas] 
libraries = openblas
library_dirs = /usr/local/opt/openblas/lib
include_dirs = /usr/local/opt/openblas/include
runtime_library_dirs = /usr/local/opt/openblas/lib

(env1)>python setup.py 配置

blas_opt_info:
blas_mkl_info:
  libraries mkl,vml,guide not found in         ['/Users/mac/.virtualenvs/env1/bin/../lib', '/usr/local/lib', '/usr/lib']
  NOT AVAILABLE
openblas_info:
  FOUND:
    libraries = ['openblas', 'openblas']
    library_dirs = ['/usr/local/opt/openblas/lib']
language = c
define_macros = [('HAVE_CBLAS', None)]
runtime_library_dirs = ['/usr/local/opt/openblas/lib']
  FOUND:
    libraries = ['openblas', 'openblas']
    library_dirs = ['/usr/local/opt/openblas/lib']
    language = c
    define_macros = [('HAVE_CBLAS', None)]
    runtime_library_dirs = ['/usr/local/opt/openblas/lib']
F2PY Version 2
lapack_opt_info:
openblas_lapack_info:
C compiler: cc
creating /var/folders/mz/s14c1w0x3ql4_djr5s92pz9r0000gn/T/tmpvjuerN/var
creating /var/folders/mz/s14c1w0x3ql4_djr5s92pz9r0000gn/T/tmpvjuerN/var/folders
creating /var/folders/mz/s14c1w0x3ql4_djr5s92pz9r0000gn/T/tmpvjuerN/var/folders/mz
creating /var/folders/mz/s14c1w0x3ql4_djr5s92pz9r0000gn/T/tmpvjuerN/var/folders/mz/s14c1w0x3ql4_djr5s92pz9r0000gn
creating /var/folders/mz/s14c1w0x3ql4_djr5s92pz9r0000gn/T/tmpvjuerN/var/folders/mz/s14c1w0x3ql4_djr5s92pz9r0000gn/T
creating /var/folders/mz/s14c1w0x3ql4_djr5s92pz9r0000gn/T/tmpvjuerN/var/folders/mz/s14c1w0x3ql4_djr5s92pz9r0000gn/T/tmpvjuerN
compile options: '-c'
cc: /var/folders/mz/s14c1w0x3ql4_djr5s92pz9r0000gn/T/tmpvjuerN/source.c
/var/folders/mz/s14c1w0x3ql4_djr5s92pz9r0000gn/T/tmpvjuerN/source.c:4:13: warning: implicit declaration of function 'zungqr_' is invalid in C99 [-Wimplicit-function-declaration]
            zungqr_();
            ^
1 warning generated.
cc /var/folders/mz/s14c1w0x3ql4_djr5s92pz9r0000gn/T/tmpvjuerN/var/folders/mz/s14c1w0x3ql4_djr5s92pz9r0000gn/T/tmpvjuerN/source.o -L/usr/local/opt/openblas/lib -lopenblas -o /var/folders/mz/s14c1w0x3ql4_djr5s92pz9r0000gn/T/tmpvjuerN/a.out
  FOUND:
    libraries = ['openblas', 'openblas']
    library_dirs = ['/usr/local/opt/openblas/lib']
    language = c
    define_macros = [('HAVE_CBLAS', None)]
    runtime_library_dirs = ['/usr/local/opt/openblas/lib']
  FOUND:
    libraries = ['openblas', 'openblas']
    library_dirs = ['/usr/local/opt/openblas/lib']
    language = c
    define_macros = [('HAVE_CBLAS', None)]
    runtime_library_dirs = ['/usr/local/opt/openblas/lib']
running config

(env1)numpy-1.10.4>python setup.py build --fcompiler=gnu95

blas_opt_info:
blas_mkl_info:
  libraries mkl,vml,guide not found in ['/Users/mac/.virtualenvs/env1/bin/../lib', '/usr/local/lib', '/usr/lib']
  NOT AVAILABLE
openblas_info:
  FOUND:
    libraries = ['openblas', 'openblas']
    library_dirs = ['/usr/local/opt/openblas/lib']
    language = c
    define_macros = [('HAVE_CBLAS', None)]
    runtime_library_dirs = ['/usr/local/opt/openblas/lib']
  FOUND:
    libraries = ['openblas', 'openblas']
    library_dirs = ['/usr/local/opt/openblas/lib']
    language = c
    define_macros = [('HAVE_CBLAS', None)]
    runtime_library_dirs = ['/usr/local/opt/openblas/lib']
F2PY Version 2
lapack_opt_info:
openblas_lapack_info:
C compiler: cc
creating /var/folders/mz/s14c1w0x3ql4_djr5s92pz9r0000gn/T/tmptcMLMT/var
creating /var/folders/mz/s14c1w0x3ql4_djr5s92pz9r0000gn/T/tmptcMLMT/var/folders
creating /var/folders/mz/s14c1w0x3ql4_djr5s92pz9r0000gn/T/tmptcMLMT/var/folders/mz
creating /var/folders/mz/s14c1w0x3ql4_djr5s92pz9r0000gn/T/tmptcMLMT/var/folders/mz/s14c1w0x3ql4_djr5s92pz9r0000gn
creating /var/folders/mz/s14c1w0x3ql4_djr5s92pz9r0000gn/T/tmptcMLMT/var/folders/mz/s14c1w0x3ql4_djr5s92pz9r0000gn/T
creating /var/folders/mz/s14c1w0x3ql4_djr5s92pz9r0000gn/T/tmptcMLMT/var/folders/mz/s14c1w0x3ql4_djr5s92pz9r0000gn/T/tmptcMLMT
compile options: '-c'
cc: /var/folders/mz/s14c1w0x3ql4_djr5s92pz9r0000gn/T/tmptcMLMT/source.c
/var/folders/mz/s14c1w0x3ql4_djr5s92pz9r0000gn/T/tmptcMLMT/source.c:4:13: warning: implicit declaration of function 'zungqr_' is invalid in C99 [-Wimplicit-function-declaration]
            zungqr_();
            ^
1 warning generated.
cc /var/folders/mz/s14c1w0x3ql4_djr5s92pz9r0000gn/T/tmptcMLMT/var/folders/mz/s14c1w0x3ql4_djr5s92pz9r0000gn/T/tmptcMLMT/source.o -L/usr/local/opt/openblas/lib -lopenblas -o /var/folders/mz/s14c1w0x3ql4_djr5s92pz9r0000gn/T/tmptcMLMT/a.out
  FOUND:
    libraries = ['openblas', 'openblas']
    library_dirs = ['/usr/local/opt/openblas/lib']
    language = c
    define_macros = [('HAVE_CBLAS', None)]
    runtime_library_dirs = ['/usr/local/opt/openblas/lib']
  FOUND:
    libraries = ['openblas', 'openblas']
    library_dirs = ['/usr/local/opt/openblas/lib']
    language = c
    define_macros = [('HAVE_CBLAS', None)]
    runtime_library_dirs = ['/usr/local/opt/openblas/lib']
running build
running config_cc
unifing config_cc, config, build_clib, build_ext, build commands --compiler options
running config_fc
unifing config_fc, config, build_clib, build_ext, build commands --fcompiler options
running build_src
build_src
building py_modules sources
building library "npymath" sources
customize Gnu95FCompiler
Found executable /usr/local/bin/gfortran
customize Gnu95FCompiler using config
C compiler: clang -fno-strict-aliasing -fno-common -dynamic -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/System/Library/Frameworks/Tk.framework/Versions/8.5/Headers -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes
compile options: '-Inumpy/core/src/private -Inumpy/core/src -Inumpy/core -Inumpy/core/src/npymath -Inumpy/core/src/multiarray -Inumpy/core/src/umath -Inumpy/core/src/npysort -I/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c'
clang: _configtest.c
clang _configtest.o -o _configtest
success!
removing: _configtest.c _configtest.o _configtest
C compiler: clang -fno-strict-aliasing -fno-common -dynamic -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/System/Library/Frameworks/Tk.framework/Versions/8.5/Headers -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes
compile options: '-Inumpy/core/src/private -Inumpy/core/src -Inumpy/core -Inumpy/core/src/npymath -Inumpy/core/src/multiarray -Inumpy/core/src/umath -Inumpy/core/src/npysort -I/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c'
clang: _configtest.c
_configtest.c:1:5: warning: incompatible redeclaration of library function 'exp' [-Wincompatible-library-redeclaration]
int exp (void);
    ^
_configtest.c:1:5: note: 'exp' is a builtin with type 'double (double)'
1 warning generated.
clang _configtest.o -o _configtest
success!
removing: _configtest.c _configtest.o _configtest
building library "npysort" sources
  adding 'build/src.macosx-10.10-x86_64-2.7/numpy/core/src/private' to include_dirs.
None - nothing done with h_files = ['build/src.macosx-10.10-x86_64-2.7/numpy/core/src/private/npy_partition.h', 'build/src.macosx-10.10-x86_64-2.7/numpy/core/src/private/npy_binsearch.h']
building extension "numpy.core._dummy" sources
  adding 'build/src.macosx-10.10-x86_64-2.7/numpy/core/include/numpy/config.h' to sources.
  adding 'build/src.macosx-10.10-x86_64-2.7/numpy/core/include/numpy/_numpyconfig.h' to sources.
executing numpy/core/code_generators/generate_numpy_api.py
  adding 'build/src.macosx-10.10-x86_64-2.7/numpy/core/include/numpy/__multiarray_api.h' to sources.
numpy.core - nothing done with h_files = ['build/src.macosx-10.10-x86_64-2.7/numpy/core/include/numpy/config.h', 'build/src.macosx-10.10-x86_64-2.7/numpy/core/include/numpy/_numpyconfig.h', 'build/src.macosx-10.10-x86_64-2.7/numpy/core/include/numpy/__multiarray_api.h']
building extension "numpy.core.multiarray" sources
  adding 'build/src.macosx-10.10-x86_64-2.7/numpy/core/include/numpy/config.h' to sources.
  adding 'build/src.macosx-10.10-x86_64-2.7/numpy/core/include/numpy/_numpyconfig.h' to sources.
executing numpy/core/code_generators/generate_numpy_api.py
  adding 'build/src.macosx-10.10-x86_64-2.7/numpy/core/include/numpy/__multiarray_api.h' to sources.
  adding 'build/src.macosx-10.10-x86_64-2.7/numpy/core/src/private' to include_dirs.
numpy.core - nothing done with h_files = ['build/src.macosx-10.10-x86_64-2.7/numpy/core/src/private/templ_common.h', 'build/src.macosx-10.10-x86_64-2.7/numpy/core/include/numpy/config.h', 'build/src.macosx-10.10-x86_64-2.7/numpy/core/include/numpy/_numpyconfig.h', 'build/src.macosx-10.10-x86_64-2.7/numpy/core/include/numpy/__multiarray_api.h']
building extension "numpy.core.umath" sources
  adding 'build/src.macosx-10.10-x86_64-2.7/numpy/core/include/numpy/config.h' to sources.
  adding 'build/src.macosx-10.10-x86_64-2.7/numpy/core/include/numpy/_numpyconfig.h' to sources.
executing numpy/core/code_generators/generate_ufunc_api.py
  adding 'build/src.macosx-10.10-x86_64-2.7/numpy/core/include/numpy/__ufunc_api.h' to sources.
  adding 'build/src.macosx-10.10-x86_64-2.7/numpy/core/src/umath' to include_dirs.
numpy.core - nothing done with h_files = ['build/src.macosx-10.10-x86_64-2.7/numpy/core/src/umath/funcs.inc', 'build/src.macosx-10.10-x86_64-2.7/numpy/core/src/umath/simd.inc', 'build/src.macosx-10.10-x86_64-2.7/numpy/core/src/umath/loops.h', 'build/src.macosx-10.10-x86_64-2.7/numpy/core/include/numpy/config.h', 'build/src.macosx-10.10-x86_64-2.7/numpy/core/include/numpy/_numpyconfig.h', 'build/src.macosx-10.10-x86_64-2.7/numpy/core/include/numpy/__ufunc_api.h']
building extension "numpy.core.umath_tests" sources
building extension "numpy.core.test_rational" sources
building extension "numpy.core.struct_ufunc_test" sources
building extension "numpy.core.multiarray_tests" sources
building extension "numpy.core.operand_flag_tests" sources
building extension "numpy.fft.fftpack_lite" sources
building extension "numpy.linalg.lapack_lite" sources
  adding 'numpy/linalg/lapack_litemodule.c' to sources.
  adding 'numpy/linalg/lapack_lite/python_xerbla.c' to sources.
building extension "numpy.linalg._umath_linalg" sources
  adding 'numpy/linalg/umath_linalg.c.src' to sources.
  adding 'numpy/linalg/lapack_lite/python_xerbla.c' to sources.
building extension "numpy.random.mtrand" sources
building data_files sources
build_src: building npy-pkg config files
running build_py
copying numpy/version.py -> build/lib.macosx-10.10-x86_64-2.7/numpy
copying build/src.macosx-10.10-x86_64-2.7/numpy/__config__.py -> build/lib.macosx-10.10-x86_64-2.7/numpy
copying build/src.macosx-10.10-x86_64-2.7/numpy/distutils/__config__.py -> build/lib.macosx-10.10-x86_64-2.7/numpy/distutils
running build_clib
customize UnixCCompiler
customize UnixCCompiler using build_clib
running build_ext
customize UnixCCompiler
customize UnixCCompiler using build_ext
running build_scripts
  adding 'build/scripts.macosx-10.10-x86_64-2.7/f2py' to scripts

(env1)numpy-1.10.4>python setup.py install

Running from numpy source directory.
/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'test_suite'
  warnings.warn(msg)
blas_opt_info:
blas_mkl_info:
  libraries mkl,vml,guide not found in ['/Users/mac/.virtualenvs/env1/bin/../lib', '/usr/local/lib', '/usr/lib']
  NOT AVAILABLE
openblas_info:
/Users/mac/test/numpy-1.10.4/numpy/distutils/system_info.py:635: UserWarning: Specified path  is invalid.
  warnings.warn('Specified path %s is invalid.' % d)
  FOUND:
    libraries = ['openblas', 'openblas']
    library_dirs = ['/usr/local/opt/openblas/lib']
    language = c
    define_macros = [('HAVE_CBLAS', None)]
    runtime_library_dirs = ['/usr/local/opt/openblas/lib']
  FOUND:
    libraries = ['openblas', 'openblas']
    library_dirs = ['/usr/local/opt/openblas/lib']
    language = c
    define_macros = [('HAVE_CBLAS', None)]
    runtime_library_dirs = ['/usr/local/opt/openblas/lib']
F2PY Version 2
lapack_opt_info:
openblas_lapack_info:
C compiler: cc
creating /var/folders/mz/s14c1w0x3ql4_djr5s92pz9r0000gn/T/tmpgDbyyW/var
creating /var/folders/mz/s14c1w0x3ql4_djr5s92pz9r0000gn/T/tmpgDbyyW/var/folders
creating /var/folders/mz/s14c1w0x3ql4_djr5s92pz9r0000gn/T/tmpgDbyyW/var/folders/mz
creating /var/folders/mz/s14c1w0x3ql4_djr5s92pz9r0000gn/T/tmpgDbyyW/var/folders/mz/s14c1w0x3ql4_djr5s92pz9r0000gn
creating /var/folders/mz/s14c1w0x3ql4_djr5s92pz9r0000gn/T/tmpgDbyyW/var/folders/mz/s14c1w0x3ql4_djr5s92pz9r0000gn/T
creating /var/folders/mz/s14c1w0x3ql4_djr5s92pz9r0000gn/T/tmpgDbyyW/var/folders/mz/s14c1w0x3ql4_djr5s92pz9r0000gn/T/tmpgDbyyW
compile options: '-c'
cc: /var/folders/mz/s14c1w0x3ql4_djr5s92pz9r0000gn/T/tmpgDbyyW/source.c
/var/folders/mz/s14c1w0x3ql4_djr5s92pz9r0000gn/T/tmpgDbyyW/source.c:4:13: warning: implicit declaration of function 'zungqr_' is invalid in C99 [-Wimplicit-function-declaration]
            zungqr_();
            ^
1 warning generated.
cc /var/folders/mz/s14c1w0x3ql4_djr5s92pz9r0000gn/T/tmpgDbyyW/var/folders/mz/s14c1w0x3ql4_djr5s92pz9r0000gn/T/tmpgDbyyW/source.o -L/usr/local/opt/openblas/lib -lopenblas -o /var/folders/mz/s14c1w0x3ql4_djr5s92pz9r0000gn/T/tmpgDbyyW/a.out
  FOUND:
    libraries = ['openblas', 'openblas']
    library_dirs = ['/usr/local/opt/openblas/lib']
    language = c
    define_macros = [('HAVE_CBLAS', None)]
    runtime_library_dirs = ['/usr/local/opt/openblas/lib']
  FOUND:
    libraries = ['openblas', 'openblas']
    library_dirs = ['/usr/local/opt/openblas/lib']
    language = c
    define_macros = [('HAVE_CBLAS', None)]
    runtime_library_dirs = ['/usr/local/opt/openblas/lib']
/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'define_macros'
  warnings.warn(msg)
running install
running build
running config_cc
unifing config_cc, config, build_clib, build_ext, build commands --compiler options
running config_fc
unifing config_fc, config, build_clib, build_ext, build commands --fcompiler options
running build_src
build_src
building py_modules sources
building library "npymath" sources
customize Gnu95FCompiler
Found executable /usr/local/bin/gfortran
customize Gnu95FCompiler
customize Gnu95FCompiler using config
C compiler: clang -fno-strict-aliasing -fno-common -dynamic -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/System/Library/Frameworks/Tk.framework/Versions/8.5/Headers -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes
compile options: '-Inumpy/core/src/private -Inumpy/core/src -Inumpy/core -Inumpy/core/src/npymath -Inumpy/core/src/multiarray -Inumpy/core/src/umath -Inumpy/core/src/npysort -I/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c'
clang: _configtest.c
clang _configtest.o -o _configtest
success!
removing: _configtest.c _configtest.o _configtest
C compiler: clang -fno-strict-aliasing -fno-common -dynamic -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/System/Library/Frameworks/Tk.framework/Versions/8.5/Headers -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes
compile options: '-Inumpy/core/src/private -Inumpy/core/src -Inumpy/core -Inumpy/core/src/npymath -Inumpy/core/src/multiarray -Inumpy/core/src/umath -Inumpy/core/src/npysort -I/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c'
clang: _configtest.c
_configtest.c:1:5: warning: incompatible redeclaration of library function 'exp' [-Wincompatible-library-redeclaration]
int exp (void);
    ^
_configtest.c:1:5: note: 'exp' is a builtin with type 'double (double)'
1 warning generated.
clang _configtest.o -o _configtest
success!
removing: _configtest.c _configtest.o _configtest
building library "npysort" sources
  adding 'build/src.macosx-10.10-x86_64-2.7/numpy/core/src/private' to include_dirs.
None - nothing done with h_files = ['build/src.macosx-10.10-x86_64-2.7/numpy/core/src/private/npy_partition.h', 'build/src.macosx-10.10-x86_64-2.7/numpy/core/src/private/npy_binsearch.h']
building extension "numpy.core._dummy" sources
  adding 'build/src.macosx-10.10-x86_64-2.7/numpy/core/include/numpy/config.h' to sources.
  adding 'build/src.macosx-10.10-x86_64-2.7/numpy/core/include/numpy/_numpyconfig.h' to sources.
executing numpy/core/code_generators/generate_numpy_api.py
  adding 'build/src.macosx-10.10-x86_64-2.7/numpy/core/include/numpy/__multiarray_api.h' to sources.
numpy.core - nothing done with h_files = ['build/src.macosx-10.10-x86_64-2.7/numpy/core/include/numpy/config.h', 'build/src.macosx-10.10-x86_64-2.7/numpy/core/include/numpy/_numpyconfig.h', 'build/src.macosx-10.10-x86_64-2.7/numpy/core/include/numpy/__multiarray_api.h']
building extension "numpy.core.multiarray" sources
  adding 'build/src.macosx-10.10-x86_64-2.7/numpy/core/include/numpy/config.h' to sources.
  adding 'build/src.macosx-10.10-x86_64-2.7/numpy/core/include/numpy/_numpyconfig.h' to sources.
executing numpy/core/code_generators/generate_numpy_api.py
  adding 'build/src.macosx-10.10-x86_64-2.7/numpy/core/include/numpy/__multiarray_api.h' to sources.
  adding 'build/src.macosx-10.10-x86_64-2.7/numpy/core/src/private' to include_dirs.
numpy.core - nothing done with h_files = ['build/src.macosx-10.10-x86_64-2.7/numpy/core/src/private/templ_common.h', 'build/src.macosx-10.10-x86_64-2.7/numpy/core/include/numpy/config.h', 'build/src.macosx-10.10-x86_64-2.7/numpy/core/include/numpy/_numpyconfig.h', 'build/src.macosx-10.10-x86_64-2.7/numpy/core/include/numpy/__multiarray_api.h']
building extension "numpy.core.umath" sources
  adding 'build/src.macosx-10.10-x86_64-2.7/numpy/core/include/numpy/config.h' to sources.
  adding 'build/src.macosx-10.10-x86_64-2.7/numpy/core/include/numpy/_numpyconfig.h' to sources.
executing numpy/core/code_generators/generate_ufunc_api.py
  adding 'build/src.macosx-10.10-x86_64-2.7/numpy/core/include/numpy/__ufunc_api.h' to sources.
  adding 'build/src.macosx-10.10-x86_64-2.7/numpy/core/src/umath' to include_dirs.
numpy.core - nothing done with h_files = ['build/src.macosx-10.10-x86_64-2.7/numpy/core/src/umath/funcs.inc', 'build/src.macosx-10.10-x86_64-2.7/numpy/core/src/umath/simd.inc', 'build/src.macosx-10.10-x86_64-2.7/numpy/core/src/umath/loops.h', 'build/src.macosx-10.10-x86_64-2.7/numpy/core/include/numpy/config.h', 'build/src.macosx-10.10-x86_64-2.7/numpy/core/include/numpy/_numpyconfig.h', 'build/src.macosx-10.10-x86_64-2.7/numpy/core/include/numpy/__ufunc_api.h']
building extension "numpy.core.umath_tests" sources
building extension "numpy.core.test_rational" sources
building extension "numpy.core.struct_ufunc_test" sources
building extension "numpy.core.multiarray_tests" sources
building extension "numpy.core.operand_flag_tests" sources
building extension "numpy.fft.fftpack_lite" sources
building extension "numpy.linalg.lapack_lite" sources
  adding 'numpy/linalg/lapack_litemodule.c' to sources.
  adding 'numpy/linalg/lapack_lite/python_xerbla.c' to sources.
building extension "numpy.linalg._umath_linalg" sources
  adding 'numpy/linalg/umath_linalg.c.src' to sources.
  adding 'numpy/linalg/lapack_lite/python_xerbla.c' to sources.
building extension "numpy.random.mtrand" sources
building data_files sources
build_src: building npy-pkg config files
running build_py
copying numpy/version.py -> build/lib.macosx-10.10-x86_64-2.7/numpy
copying build/src.macosx-10.10-x86_64-2.7/numpy/__config__.py -> build/lib.macosx-10.10-x86_64-2.7/numpy
copying build/src.macosx-10.10-x86_64-2.7/numpy/distutils/__config__.py -> build/lib.macosx-10.10-x86_64-2.7/numpy/distutils
running build_clib
customize UnixCCompiler
customize UnixCCompiler using build_clib
running build_ext
customize UnixCCompiler
customize UnixCCompiler using build_ext
running build_scripts
  adding 'build/scripts.macosx-10.10-x86_64-2.7/f2py' to scripts
running install_lib
copying build/lib.macosx-10.10-x86_64-2.7/numpy/__config__.py -> /Users/mac/.virtualenvs/env1/lib/python2.7/site-packages/numpy
copying build/lib.macosx-10.10-x86_64-2.7/numpy/distutils/__config__.py -> /Users/mac/.virtualenvs/env1/lib/python2.7/site-packages/numpy/distutils
copying build/lib.macosx-10.10-x86_64-2.7/numpy/version.py -> /Users/mac/.virtualenvs/env1/lib/python2.7/site-packages/numpy
byte-compiling /Users/mac/.virtualenvs/env1/lib/python2.7/site-packages/numpy/__config__.py to __config__.pyc
byte-compiling /Users/mac/.virtualenvs/env1/lib/python2.7/site-packages/numpy/distutils/__config__.py to __config__.pyc
byte-compiling /Users/mac/.virtualenvs/env1/lib/python2.7/site-packages/numpy/version.py to version.pyc
running install_scripts
changing mode of /Users/mac/.virtualenvs/env1/bin/f2py to 755
changing mode of /Users/mac/.virtualenvs/env1/bin/f2py2.7 to 755
running install_data
copying site.cfg -> /Users/mac/.virtualenvs/env1/lib/python2.7/site-packages/numpy/distutils/
copying build/src.macosx-10.10-x86_64-2.7/numpy/core/include/numpy/__ufunc_api.h -> /Users/mac/.virtualenvs/env1/lib/python2.7/site-packages/numpy/core/include/numpy
copying build/src.macosx-10.10-x86_64-2.7/numpy/core/include/numpy/ufunc_api.txt -> /Users/mac/.virtualenvs/env1/lib/python2.7/site-packages/numpy/core/include/numpy
copying build/src.macosx-10.10-x86_64-2.7/numpy/core/lib/npy-pkg-config/npymath.ini -> /Users/mac/.virtualenvs/env1/lib/python2.7/site-packages/numpy/core/lib/npy-pkg-config
copying build/src.macosx-10.10-x86_64-2.7/numpy/core/lib/npy-pkg-config/mlib.ini -> /Users/mac/.virtualenvs/env1/lib/python2.7/site-packages/numpy/core/lib/npy-pkg-config
running install_egg_info
Writing /Users/mac/.virtualenvs/env1/lib/python2.7/site-packages/numpy-1.10.4-py2.7.egg-info
running install_clib

(env1)numpy-1.10.4>cd ~

(env1)~>python

Python 2.7.11 (default, Jan 23 2016, 00:33:41)
[GCC 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.53)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy;numpy.show_config()
lapack_opt_info:
    libraries = ['openblas', 'openblas']
    library_dirs = ['/usr/local/opt/openblas/lib']
    define_macros = [('HAVE_CBLAS', None)]
    language = c
    runtime_library_dirs = ['/usr/local/opt/openblas/lib']
blas_opt_info:
    libraries = ['openblas', 'openblas']
    library_dirs = ['/usr/local/opt/openblas/lib']
    define_macros = [('HAVE_CBLAS', None)]
    language = c
    runtime_library_dirs = ['/usr/local/opt/openblas/lib']
openblas_info:
    libraries = ['openblas', 'openblas']
    library_dirs = ['/usr/local/opt/openblas/lib']
    define_macros = [('HAVE_CBLAS', None)]
    language = c
    runtime_library_dirs = ['/usr/local/opt/openblas/lib']
openblas_lapack_info:
    libraries = ['openblas', 'openblas']
    library_dirs = ['/usr/local/opt/openblas/lib']
    define_macros = [('HAVE_CBLAS', None)]
    language = c
    runtime_library_dirs = ['/usr/local/opt/openblas/lib']
blas_mkl_info:
  NOT AVAILABLE
>>>Ctrl-D

(env1)~>otool -L ~/.virtualenvs/env1/lib/python2.7/site-packages/numpy/core/multiarray.so

/Users/mac/.virtualenvs/env1/lib/python2.7/site-packages/numpy/core/multiarray.so:
    /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate (compatibility version 1.0.0, current version 4.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0)

=====================

那么问题是什么!!

为什么 numpy 仍然使用苹果的 Accelerate 框架而不是 openblas 构建?

如果我使用:

brew install numpy --with-openblas

一切都会好的,numpy.show_config() 和 otool 会显示它是针对 openblas 构建的,但是我需要确保在 virtualenv 中,brew install 无法保证。

我已经仔细阅读过这个http://numpy-discussion.10968.n7.nabble.com/OpenBLAS-on-Mac-td36544.html 但我仍然无法完成它,我已经尝试重新创建一个 virtualenv 并且没有运气。

任何帮助将不胜感激!

【问题讨论】:

  • 您能否确认您在解释器会话中导入的 numpy 版本的位置 (import numpy; print(numpy.__path__))?
  • Python 2.7.11(默认,2016 年 1 月 23 日,00:33:41)[GCC 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.53)] 在 darwin 上键入“帮助” 、“版权”、“学分”或“许可”以获取更多信息。 >>> 导入 numpy; print(numpy.__path__) ['/Users/mac/.virtualenvs/env1/lib/python2.7/site-packages/numpy']
  • 嗯,这与您使用otool 检查的版本不同:/Users/fugazi/.virtualenvs/env1/lib/python2.7/site-packages/numpy(假设您将otool 称为用户fugazi 而不是mac)。试试otool -L /Users/mac/.virtualenvs/env1/lib/python2.7/site-packages/numpy/core/multiarray.so
  • 实际上...我只是试图隐藏实际的用户名 fugazi,而是在这个问题中将其更改为 mac...所以我重新编辑了结果。我使用相同的用户帐户,无论如何。我相信这不是我问题的关键......

标签: macos numpy virtualenv accelerate-framework openblas


【解决方案1】:

问题解决了,但我不知道如何,同样的过程: 编译openblas:

make && make install

然后:

export PATH="/opt/local/bin:/opt/local/sbin:/usr/local/Cellar/bin:/usr/local/bin:$PATH"
export PATH="/Developer/NVIDIA/CUDA-7.5/bin:$PATH"
export DYLD_LIBRARY_PATH="/opt/OpenBLAS/lib:/Developer/NVIDIA/CUDA-7.5/lib:$DYLD_LIBRARY_PATH"
export LD_LIBRARY_PATH="/opt/OpenBLAS/lib:$LD_LIBRARY_PATH"
export LDFLAGS="-L/usr/local/opt/openssl/lib -L/opt/OpenBLAS/lib"
export CPPFLAGS="-I/usr/local/opt/openssl/include -I/opt/OpenBLAS/include"

然后:

vi numpy-1.10.4/site.cfg
[openblas]
libraries = openblas
library_dirs = /opt/OpenBLAS/lib
include_dirs = /opt/OpenBLAS/include
runtime_library_dirs = /opt/OpenBLAS/lib

然后使用:

python setup.py config
python setup.py build --fcompiler=gnu95
python setup.py install

otool -L /Users/mac/.virtualenvs/env1/lib/python2.7/site-packages/numpy/core/multiarray.so

multiarray.so:
/opt/OpenBLAS/lib/libopenblas_haswellp-r0.2.15.dylib (compatibility version 0.0.0, current version 0.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0)

它只是可以! 问题解决确认。也许是因为一些愚蠢的错误。

【讨论】:

    猜你喜欢
    • 2014-12-19
    • 2016-01-25
    • 2013-07-30
    • 1970-01-01
    • 1970-01-01
    • 2015-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多