python-lambda-local icon indicating copy to clipboard operation
python-lambda-local copied to clipboard

Support for Python 3 relative imports?

Open willcroft opened this issue 5 years ago • 1 comments

We're currently running multi-package code on AWS Lambda, eg:

package_one/
    handler.py
    utils.py
package_two/
    other.py

On AWS Lambda, we're able to use:

from . import utils
from package_two import other

These imports don't work locally, presumably due to the way that python-lambda-local calls the handler as a function directly? So locally, we're using the following boilerplate in each handler we need to directly call:

if __name__[:8] in ['__main__', 'request-'] and not __package__:
    import os
    import sys
    __package__ = 'package_one'
    sys.path.append(...)

Are we missing something obvious here, or would a PR be welcomed to either inject this boilerplate automatically, or have python-lamba-local call the handler from within a package as AWS Lambda does itself?

willcroft avatar Jan 27 '20 11:01 willcroft

PR is welcomed. Thanks!

yxd-hde avatar Feb 17 '20 06:02 yxd-hde