Discussion:
[Numpy-discussion] Problem with NumPy 1.10.4 with ATLAS on Python 2.7.8
Davide Vanzo
2016-01-28 21:43:11 UTC
Permalink
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
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
Nathaniel Smith
2016-01-28 22:23:42 UTC
Permalink
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.)
Post by Davide Vanzo
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
import numpy
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
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
https://mail.scipy.org/mailman/listinfo/numpy-discussion
Davide Vanzo
2016-01-28 22:31:23 UTC
Permalink
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
Post by Nathaniel Smith
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.)
Post by Davide Vanzo
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
import numpy
  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
/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
https://mail.scipy.org/mailman/listinfo/numpy-discussion
_______________________________________________
NumPy-Discussion mailing list
https://mail.scipy.org/mailman/listinfo/numpy-discussion
Loading...