Search code examples
amazon-web-servicesaws-lambdapycharmaws-sam-cliaws-toolkit

How to export PATH to "sam build" command?


I'm developing AWS Lambda function on PyCharm. When I do "Run" button, Following error message.

/usr/local/bin/sam build MyFunction --template /Users/miyashiiii/Works/myapp/myapp/template.yaml --build-dir /Users/miyashiiii/Works/myapp/myapp/.aws-sam/build
Building codeuri: myapp/ runtime: python3.7 metadata: {} functions: ['MyFunction']

Build Failed
Error: PythonPipBuilder:Validation - Binary validation failed for python, searched for python in following locations  : ['/usr/bin/python'] which did not satisfy constraints for runtime: python3.7. Do you have python for runtime: python3.7 on your PATH?

python3.7 is on my PATH, and other some locations is on my PATH, but locations list includes only '/usr/bin/python'.

And when I do same command (/usr/local/bin/sam build ~~) on terminal, It succeed.

How to export PATH to "sam build" command?


Solution

  • I solved the problem for python3.8 (same for python3.7 I suppose) by linking executable into /usr/local/bin

    ln -sf /usr/local/opt/[email protected]/bin/python3.8 /usr/local/bin/
    

    [EDIT Nov2021] it's /opt/homebrew/opt/[email protected]/bin/python3 nowadays [/EDIT]

    To find your python directory if installed by homebrew: brew info [email protected]

    Also, you'd probably prefer running SAM inside a docker container (option sam build --use-container with CLI)

    In pycharm: Activate the build function inside a container