【问题标题】:How to export PATH to "sam build" command?如何将 PATH 导出到“sam build”命令?
【发布时间】:2021-11-04 00:16:17
【问题描述】:

我正在 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?

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

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

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

【问题讨论】:

    标签: amazon-web-services aws-lambda pycharm aws-sam-cli aws-toolkit


    【解决方案1】:

    我通过将可执行文件链接到 /usr/local/bin 解决了 python3.8 的问题(我想 python3.7 也是如此)

    ln -sf /usr/local/opt/python@3.8/bin/python3.8 /usr/local/bin/
    

    [EDIT Nov2021] 现在是/opt/homebrew/opt/python@3.8/bin/python3 [/EDIT]

    如果通过 homebrew 安装找到你的 python 目录:brew info python@3.8

    另外,您可能更喜欢在 docker 容器内运行 SAM(选项 sam build --use-container 使用 CLI)

    在 pycharm 中:

    【讨论】:

    • 这解决了我的问题。注意:我必须使用“/usr/bin/python”作为 WSL 的位置。
    【解决方案2】:

    SAM 预计您的 Python 版本确实在 PATH 上,如 here 所示

    如果通过 Homebrew 安装,要查找您的 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
    

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

    sam build 应该会找到你的 Python 版本

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 1970-01-01
      • 2017-09-05
      • 1970-01-01
      • 2021-03-25
      相关资源
      最近更新 更多