我正在尝试安装numpy==1.10.2,scipy并matplotlib在服务器上基于opensuse.我已经从源头安装numpy了virtualenv(我也尝试过pip - 当然也是同样的结果).现在,当我尝试numpy在python控制台中导入时,我收到以下错误:
ImportError: /home/user/.virtualenvs/project/lib/python2.7/site-packages/numpy/core/multiarray.so: undefined symbol: cblas_sgemm
Run Code Online (Sandbox Code Playgroud)
注意:我不是这台服务器的超级用户.
编辑:
ldd /home/user/.virtualenvs/project/lib/python2.7/site-packages/numpy/core/multiarray.so`
linux-vdso.so.1 (0x00007fffa0d69000)
libtatlas.so.3 => /home/user/.local/usr/lib64/atlas/libtatlas.so.3 (0x00007fe366d66000)
libm.so.6 => /lib64/libm.so.6 (0x00007fe366a50000)
libpython2.7.so.1.0 => /usr/lib64/libpython2.7.so.1.0 (0x00007fe3666b2000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fe366496000)
libc.so.6 => /lib64/libc.so.6 (0x00007fe3660f0000)
/lib64/ld-linux-x86-64.so.2 (0x00007fe367a15000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fe365eec000)
libutil.so.1 => /lib64/libutil.so.1 (0x00007fe365ce9000)
Run Code Online (Sandbox Code Playgroud)
libtatlas.so.3 => /home/user/.local/usr/lib64/atlas/libtatlas.so.3 - 我因为libatlas的其他问题而将此链接起来:
ImportError: /usr/lib64/atlas/libtatlas.so.3: undefined symbol: clapack_ilaenv
SOLLUTION
问题出在ATLAS lib上.根据@ali_m建议我numpy从源代码安装OpenBLAS而不是ATLAS.这里链接到如何使用BLAS安装numpy的说明.