AWS Lambda and Rhino.Compute/Rhino3dm library

Dear community,

I am using AWS Lambda to deploy a multiple instances optimization algorithm in phython3.8. There I would need to import the rhino3dm (or rhino.compute) library, however if I run the code on Lambda, it gives me an error that AWS Lambda runs an older version of GLIBC. Is there any way to update the GLIBC or to install the rhino3dm libraries on AWS Lambda?

I have tried two approaches:

  1. AWS Lambda Layers
  • I have installed the rhino3dm packages with pip (pip3 install rhino3dm -t ./)
  • I zipped the library and uploaded it into the AWS Lambda layer
  1. Docker container
  • I have tried to install the library within a container (AWS Lamdba container provided by AWS)
  • Here I am not able to install rhino3dm library as the cmake is not able to find the right build program
  • I have seen Rhino3dm needs “Emscripten” to run the setup.py, however I am not able to install it in the container through pip3^

Do you know any solution?

Thanks

@ Steve Baer
can you please give a hint on how to solve this problem? It is causing a bottleneck in our software development environment.

rhino3dm.py uses pybind11. Emscripten is only used for the javascript flavour of rhino3dm.

It looks like you might not have make installed in the environment where you’re building rhino3dm.py.

I haven’t tried building the python rhino3dm library for Linux lately, but have a need for this in the upcoming weeks. I’ll try to make a build myself to see if I can duplicate these errors that you are getting.

Hey @pitscheiderfabian, can you try this manylinux2014 wheel? I think it’ll work in your environment provided pip is reasonably up to date.

rhino3dm-0.14.0-cp38-cp38-manylinux2014_x86_64.whl (4.2 MB)

Thank you so much for your help @will and @stevebaer. In the meantime we figured out how to set up the docker file! The AWS Lambda is now working :slight_smile:

Here our solution

Cheers
Fabian

1 Like

Did the manylinux wheel work? I would like to get this published to pypi.org, but want to verify that it worked for you first.