Problem with NumPy 1.10.4 with ATLAS on Python 2.7.8
import numpy Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/python2/2.7.8/x86_64/gcc46/New_build/lib/python2.7/site-
Hi all, I recently upgraded NumPy from 1.9.1 to 1.10.4 on Python 2.7.8 by using pip. As always I specified the paths to Blas, Lapack and Atlas in the respective environment variables. I used the same compiler I used to compile both Python and the libraries (GCC 4.6.1). The problem is that it always tries to get Blas symbols in the wrong library: packages/numpy/__init__.py", line 180, in <module> from . import add_newdocs File "/usr/local/python2/2.7.8/x86_64/gcc46/New_build/lib/python2.7/site- packages/numpy/add_newdocs.py", line 13, in <module> from numpy.lib import add_newdoc File "/usr/local/python2/2.7.8/x86_64/gcc46/New_build/lib/python2.7/site- packages/numpy/lib/__init__.py", line 8, in <module> from .type_check import * File "/usr/local/python2/2.7.8/x86_64/gcc46/New_build/lib/python2.7/site- packages/numpy/lib/type_check.py", line 11, in <module> import numpy.core.numeric as _nx File "/usr/local/python2/2.7.8/x86_64/gcc46/New_build/lib/python2.7/site- packages/numpy/core/__init__.py", line 14, in <module> from . import multiarray ImportError: /usr/local/python2/2.7.8/x86_64/gcc46/New_build/lib/python2.7/site- packages/numpy/core/multiarray.so: undefined symbol: cblas_sgemm I also tried to install from source instead of pip but no luck either. The only way to get it to work is to downgrade to 1.9.1. Any idea why? Thanks. Davide
What does ldd /usr/local/python2/2.7.8/x86_64/gcc46/New_build/lib/python2.7/site-packages/numpy/core/multiarray.so say? (I'm not a numpy build expert but that should at least give a hint at which kind of brokenness you're running into... I'm also somewhat curious why you're using such an ancient compiler, but that's unlikely to be the issue.) On Jan 28, 2016 1:43 PM, "Davide Vanzo" <vanzod@accre.vanderbilt.edu> wrote:
Hi all, I recently upgraded NumPy from 1.9.1 to 1.10.4 on Python 2.7.8 by using pip. As always I specified the paths to Blas, Lapack and Atlas in the respective environment variables. I used the same compiler I used to compile both Python and the libraries (GCC 4.6.1). The problem is that it always tries to get Blas symbols in the wrong library:
import numpy Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/python2/2.7.8/x86_64/gcc46/New_build/lib/python2.7/site-packages/numpy/__init__.py", line 180, in <module> from . import add_newdocs File "/usr/local/python2/2.7.8/x86_64/gcc46/New_build/lib/python2.7/site-packages/numpy/add_newdocs.py", line 13, in <module> from numpy.lib import add_newdoc File "/usr/local/python2/2.7.8/x86_64/gcc46/New_build/lib/python2.7/site-packages/numpy/lib/__init__.py", line 8, in <module> from .type_check import * File "/usr/local/python2/2.7.8/x86_64/gcc46/New_build/lib/python2.7/site-packages/numpy/lib/type_check.py", line 11, in <module> import numpy.core.numeric as _nx File "/usr/local/python2/2.7.8/x86_64/gcc46/New_build/lib/python2.7/site-packages/numpy/core/__init__.py", line 14, in <module> from . import multiarray ImportError: /usr/local/python2/2.7.8/x86_64/gcc46/New_build/lib/python2.7/site-packages/numpy/core/multiarray.so: undefined symbol: cblas_sgemm
I also tried to install from source instead of pip but no luck either. The only way to get it to work is to downgrade to 1.9.1. Any idea why?
Thanks.
Davide
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org https://mail.scipy.org/mailman/listinfo/numpy-discussion
Nathaniel, thanks for your reply. Here is the output you requested (and a little more). # ldd /usr/local/python2/2.7.8/x86_64/gcc46/nonet/lib/python2.7/site- packages/numpy/core/multiarray.so linux-vdso.so.1 => (0x00007fffce3f2000) libatlas.so => /usr/local/atlas/latest/x86_64/gcc46/nonet/lib/libatlas.so (0x00007f86253df000) libm.so.6 => /lib64/libm.so.6 (0x00007f8625147000) libpython2.7.so.1.0 => /usr/local/python2/2.7.8/x86_64/gcc46/nonet/lib/libpython2.7.so.1.0 (0x00007f8624d6c000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f8624b4f000) libc.so.6 => /lib64/libc.so.6 (0x00007f86247ba000) /lib64/ld-linux-x86-64.so.2 (0x00007f8626409000) libdl.so.2 => /lib64/libdl.so.2 (0x00007f86245b6000) libutil.so.1 => /lib64/libutil.so.1 (0x00007f86243b3000) # nm -D /usr/local/atlas/latest/x86_64/gcc46/nonet/lib/libatlas.so | grep cblas # nm -D /usr/local/atlas/latest/x86_64/gcc46/nonet/lib/liblapack.so | grep cblas U cblas_cdotc_sub U cblas_cgemm […] U cblas_sgemm U cblas_sgemv […] U cblas_ztrsv I'm pretty familiar with this error and I always solved it by correctly pointing the installer to the correct library paths with the BLAS/LAPACK/ATLAS environment variables. However with 1.10.4 no matter how I tried to define such variables (even by inserting them in the site.cfg file), there was no way to make it work. Davide On Thu, 2016-01-28 at 14:23 -0800, Nathaniel Smith wrote:
What does ldd /usr/local/python2/2.7.8/x86_64/gcc46/New_build/lib/python2.7/site- packages/numpy/core/multiarray.so say? (I'm not a numpy build expert but that should at least give a hint at which kind of brokenness you're running into... I'm also somewhat curious why you're using such an ancient compiler, but that's unlikely to be the issue.) On Jan 28, 2016 1:43 PM, "Davide Vanzo" <vanzod@accre.vanderbilt.edu> wrote:
Hi all, I recently upgraded NumPy from 1.9.1 to 1.10.4 on Python 2.7.8 by using pip. As always I specified the paths to Blas, Lapack and Atlas in the respective environment variables. I used the same compiler I used to compile both Python and the libraries (GCC 4.6.1). The problem is that it always tries to get Blas symbols in the wrong library:
import numpy Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/python2/2.7.8/x86_64/gcc46/New_build/lib/python2.7/site -packages/numpy/__init__.py", line 180, in from . import add_newdocs File "/usr/local/python2/2.7.8/x86_64/gcc46/New_build/lib/python2.7/site -packages/numpy/add_newdocs.py", line 13, in from numpy.lib import add_newdoc File "/usr/local/python2/2.7.8/x86_64/gcc46/New_build/lib/python2.7/site -packages/numpy/lib/__init__.py", line 8, in from .type_check import * File "/usr/local/python2/2.7.8/x86_64/gcc46/New_build/lib/python2.7/site -packages/numpy/lib/type_check.py", line 11, in import numpy.core.numeric as _nx File "/usr/local/python2/2.7.8/x86_64/gcc46/New_build/lib/python2.7/site -packages/numpy/core/__init__.py", line 14, in from . import multiarray ImportError: /usr/local/python2/2.7.8/x86_64/gcc46/New_build/lib/python2.7/site- packages/numpy/core/multiarray.so: undefined symbol: cblas_sgemm
I also tried to install from source instead of pip but no luck either. The only way to get it to work is to downgrade to 1.9.1. Any idea why?
Thanks.
Davide
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org https://mail.scipy.org/mailman/listinfo/numpy-discussion
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org https://mail.scipy.org/mailman/listinfo/numpy-discussion
participants (2)
-
Davide Vanzo
-
Nathaniel Smith