I'm trying to import numpy library on a lambda AWS these are the steps:
layer=numpy
mkdir -p $layer/python/lib/python3.7/site-packages/
cd $layer/python/lib/python3.7/site-packages/
pip install -t . numpy
cd ../../../../
zip -r $layer.zip .
Here the error from lambda:
[ERROR] Runtime.ImportModuleError: Unable to import module 'lambda_function':
IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE!
Importing the numpy c-extensions failed. - Try uninstalling and reinstalling numpy. - If you have already done that, then: 1. Check that you expected to use Python3.7 from "/var/lang/bin/python3.7", and that you have no directories in your PATH or PYTHONPATH that can interfere with the Python and numpy version "1.17.3" you're trying to use. 2. If (1) looks fine, you can open a new issue at https://github.com/numpy/numpy/issues. Please include details on: - how you installed Python - how you installed numpy - your operating system - whether or not you have multiple versions of Python installed - if you built from source, your compiler versions and ideally a build log
- If you're working with a numpy git repository, try
git clean -xdf
(removes all files not under version control) and rebuild numpy.Note: this error has many possible causes, so please don't comment on an existing issue about this - open a new one instead.
Original error was: No module named 'numpy.core._multiarray_umath'
Here is the structure of my path:
.
└── python
└── lib
└── python3.7
└── site-packages
Thanks
SOLUTION:
docker pull python:3.7-slim-buster
docker run -it python:3.7-slim-buster bash
cd home
layer=boto3_cv2_pil
mkdir -p $layer/python/lib/python3.7/site-packages/
cd $layer/python/lib/python3.7/site-packages/
pip install -t . boto3 opencv-python Pillow numpy==1.17.3 pytz
cd ../../../../
apt-get update
apt-get install zip -y
zip -r $layer.zip .
docker cp $CONTAINER_ID:/home/boto3_cv2_pil.zip .