I have the following:
1.  AWS (lambda) layer of runtime python 3.6.
2. A lambda function of runtime python 3.7 that uses the above layer.
The layer packages it's modules in a zip with the required hierarhcy of "python/lib/python3.6/site-packages".
The problem is that the lambda function does not find (i.e. fails to import) the layer modules, unless I explicitly do something like: sys.path.append('/opt/python/lib/python3.6/site-packages'), which I feel is a workaround.

I would expect aws lambda framework to smoothly allow a 3.7 runtime to import modules from a layer with version < 3.7. (by adding the matching python path or by some other way).
Is there such a way that I missed?
Thanks.
This layer hierarchy python/lib/python3.6/site-packages is not needed. You could just do pip install xxx -t folder, zip it, upload it, and set an PYTHONPATH=/opt environment variable.
AWS lambda of python runtime 3.7 using layer of runtime 3.6