Open ysgit opened 5 years ago
Same here. I'm using camelot-py==0.7.2
that uses opencv-python-headless==4.1.0.25
and this is the error I see:
{
"errorMessage": "Unable to import module 'handler': /opt/python/cv2/cv2.cpython-37m-x86_64-linux-gnu.so: ELF load command address/offset not properly aligned",
"errorType": "Runtime.ImportModuleError"
}
This is my pythonRequirements
setup just in case it helps:
pythonRequirements:
dockerizePip: non-linux
slim: true
zip: true
layer:
name: ${self:service}-python-requirements
description: Python requirements lambda layer
compatibleRuntimes:
- python3.7
licenseInfo: GPLv3
allowedAccounts:
- '*'
The error persists even using the flag strip: false
in the pythonRequirements
section (see also #345):
...
Serverless: Docker Image: lambci/lambda:build-python3.7
Serverless: Running docker run --rm -v /Users/demo/.serverless/requirements\:/var/task\:z -u 0 lambci/lambda\:build-python3.7 /bin/sh -c 'python3.7 -m pip install -t /var/task/ -r /var/task/requirements.txt && find /var/task -name \\*.so -exec strip \\{\\} \\;'...
Serverless: Zipping required Python packages...
Serverless: Packaging service...
Serverless: Excluding development dependencies...
Serverless: Removing Python requirements helper...
Serverless: Packaging Python Requirements Lambda Layer...
Serverless: Uploading CloudFormation file to S3...
Serverless: Uploading artifacts...
I'm seeing the same issue when adding Pillow as a dependency. Setting slim: false
succeeds as a workaround, but I need to slim the lambda package.
I'm seeing the same issue as well with opencv-python
in an individually packaged function.
After reading this issue, I realized that my serverless-python-requirements
version was 4.3.0
which doesn't contain the PR #326. When I followed the workaround mentioned in the issue (basically pinning my serverless-python-requirements
to a commit in master more recent than PR #326 ), I was able to solve the ELF command error which was occurring for me with opencv-python-headless
.
Could we get a new release that includes this fix, please?
I had this problem persist through trying both slim: False
and strip: false
.
The error occurred after adding the serverless-basic-authentication
plugin. I have both opencv-contrib-python==4.1.1.26
and Pillow==6.1.0
in my dependencies that are zipped.
Error:
Unable to import module 'handler': /tmp/sls-py-req/cv2/cv2.cpython-36m-x86_64-linux-gnu.so: ELF load command address/offset not properly aligned
What fixed it for me was to set slim: False
do sls remove
, remove the cache in Library/Caches/serverless-python-requirements/...
together with .requirements.zip
and run sls deploy
.
Harumf I'm having the same problem but sadly still no luck. Interestingly I don't see a serverless-python-requirements
dir in Library/Caches/
at any stage.
Seems to me a binary incompatibility issue.
A note for anyone running into this error: ELF load command address/offset not properly aligned
.
It may not have to do with your serverless packaging at all.
I spent a bunch of time figuring out our error and it was related to a version incompatibility between numpy 1.8.0 and scipy 1.5.4. The error showed as: _fblas.cpython-37m-x86_64-linux-gnu.so: ELF load command address/offset not properly aligned
When I downgraded scipy to 1.4.1, the problem was solved.
Issue was mentioned on thread for another issue - https://github.com/UnitedIncome/serverless-python-requirements/issues/216#issuecomment-419037475
Trying to deploy python lambda app using circleci. Build and deploy is successful but then when lambda runs we get the following error
Plugin configuration:
Same serverless.yml configuration works when I run it from my own mac OS computer.
On circleci I've tried using
dockerizePip: true
with thecircleci/classic:201808-01
machine and usingdockerizePip: non-linux
using thecircleci/python:3.7-node
docker image. In the latter case the whole build takes place in the circleci docker container - originally I thought this was the cause of the issue.I don't think I can stop using slim because the file not meet the aws lambda requirements.