aws-lambda-numpy icon indicating copy to clipboard operation
aws-lambda-numpy copied to clipboard

Not Very Stable (to the shared libraries)

Open Alexhuszagh opened this issue 7 years ago • 0 comments

I tried building NumPy for Python3.6 on the latest amazonlinux Docker image, but python setup.py config always showed the libraries were not being found.

The solution was painfully simple: preserve the various installed library versions and symlinks, and copy all versions (preserving symlinks) to /var/task/lib.

Original

cp /usr/lib64/atlas-sse3/liblapack.so.3 /var/task/lib/.
cp /usr/lib64/atlas-sse3/libptf77blas.so.3 /var/task/lib/.
cp /usr/lib64/atlas-sse3/libf77blas.so.3 /var/task/lib/.
cp /usr/lib64/atlas-sse3/libptcblas.so.3 /var/task/lib/.
cp /usr/lib64/atlas-sse3/libcblas.so.3 /var/task/lib/.
cp /usr/lib64/atlas-sse3/libatlas.so.3 /var/task/lib/.
cp /usr/lib64/atlas-sse3/libptf77blas.so.3 /var/task/lib/.
cp /usr/lib64/libgfortran.so.3 /var/task/lib/.
cp /usr/lib64/libquadmath.so.0 /var/task/lib/.

Fixed

function long_copy()
{
     # Pass the path
     for f in $1* ; do cp -P "$f" /var/task/lib/. ; done
}

long_copy /usr/lib64/atlas-sse3/liblapack.so
long_copy /usr/lib64/atlas-sse3/libptf77blas.so
long_copy /usr/lib64/atlas-sse3/libf77blas.so
long_copy /usr/lib64/atlas-sse3/libptcblas.so
long_copy /usr/lib64/atlas-sse3/libcblas.so
long_copy /usr/lib64/atlas-sse3/libatlas.so
long_copy /usr/lib64/atlas-sse3/libptf77blas.so
long_copy /usr/lib64/libgfortran.so
long_copy /usr/lib64/libquadmath.so

The solution is quite simple, and preserves the correct symlinks to work with the 3.6 runtime.

Alexhuszagh avatar Feb 03 '18 01:02 Alexhuszagh