如何将 PATH 导出到“sam build”命令?

miy*_*iii 9 amazon-web-services pycharm aws-lambda aws-sam-cli aws-toolkit

我正在 PyCharm 上开发 AWS Lambda 函数。当我执行“运行”按钮时,出现以下错误消息。

/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?
Run Code Online (Sandbox Code Playgroud)

python3.7 在我的 PATH 上,其他一些位置在我的 PATH 上,但位置列表仅包含“/usr/bin/python”。

当我在终端上执行相同的命令(/usr/local/bin/sam build ~~)时,它成功了。

如何将 PATH 导出到“sam build”命令?

Vin*_*t J 18

我通过将可执行文件链接到 /usr/local/bin 解决了 python3.8 的问题(我认为与 python3.7 相同)

ln -sf /usr/local/opt/python@3.8/bin/python3.8 /usr/local/bin/
Run Code Online (Sandbox Code Playgroud)

如果通过自制软件安装,要查找您的 python 目录: brew info python@3.8

此外,您可能更喜欢在 docker 容器内运行 SAM(sam build --use-containerCLI选项)

在 pycharm 中: 激活容器内的构建功能


Lee*_*mes 5

SAM 期望您的 Python 版本确实为 on PATH,如此处所示

要查找您的 python 目录(如果是通过自制程序安装的):brew info python@3.8

就我而言,这产生了/usr/local/opt/python@3.8/libexec/bin

然后将其添加到 PATH 中:

export PATH=$PATH:<Your Python version's path here>
export PATH=$PATH:/usr/local/opt/python@3.8/libexec/bin
Run Code Online (Sandbox Code Playgroud)

您可以通过运行确认它已被附加echo $PATH,并且您应该在输出末尾看到新路径。

sam build然后应该找到你的Python版本