【问题标题】:aws sam build not able to build packages which require paramiko due to "Error: PythonPipBuilder:ResolveDependencies"由于“错误:PythonPipBuilder:ResolveDependencies”,aws sam build 无法构建需要 paramiko 的包
【发布时间】:2019-12-31 12:39:49
【问题描述】:

我一直在学习 AWS SAM 的诀窍,并成功部署了许多 lambda 以及依赖项和其他 AWS 服务。但是,在尝试部署依赖于某些特定依赖项的 lambda 时,我似乎遇到了问题。

这是我的 requirements.txt 文件:

paramiko==2.4.2
cryptography==2.6.1
bcrypt==3.1.6
pynacl==1.3.0

此文件位于“packageRoot/myCodeUri/requirements.txt”中

当我运行 sam build 时出现以下错误:

2019-08-27 11:18:18 Running PythonPipBuilder:ResolveDependencies

Build Failed
Error: PythonPipBuilder:ResolveDependencies - {pynacl==1.3.0(wheel), cryptography==2.6.1(wheel), bcrypt==3.1.6(wheel)}

这个(或至少类似的)错误已在 8 个月前报告:here,但目前未得到答复。

附:我最初只用 paramiko 尝试过这个,因为据我所知,这是我的脚本使用的唯一库;依赖项应该在构建期间自动拉入,但这也不起作用。

任何帮助会很好吗?

【问题讨论】:

  • 你试过用--use-container运行sam build吗?
  • 我有,但它抛出一个不同的错误,说它找不到 requirements.txt 文件。我也尝试使用 -m 参数并手动指向它,但我得到了同样的错误。
  • 除非有另一种方法我应该告诉它需求文件的路径?我觉得它是一个 pip 问题,可以通过升级 pip 来解决 - 问题(我相信)是 python 3.6 运行时是使用构建的默认设置创建的,你不能升级 pip 然后在同一迭代中安装 paramiko通过 requirements.txt - 如果有一种方法可以使用已经升级到最新版本的 pip 构建容器,那么可以解决它吗? (我可能完全错了)

标签: python amazon-web-services paramiko aws-sam-cli aws-sam


【解决方案1】:

安装 wheel 对我不起作用,但升级 pip 可以。

python -m pip install --upgrade pip

【讨论】:

    【解决方案2】:

    在运行 sam build 时,我遇到了与另一个依赖项相同的错误。我可以通过在我们的 python(或 venv)环境中安装 wheel 来解决这个问题。

    pip install wheel
    

    这种方法在运行 sam build 时不需要 --use-container 标志

    【讨论】:

    • 奇怪的是,这个解决方案以前对我有用,但从昨天开始就不再适用了。
    【解决方案3】:

    我已经设法找到一种解决方法,以在交互模式下使用 docker 容器构建和部署需要 paramiko 库的 lambda。有同样问题的朋友看看here

    【讨论】:

      猜你喜欢
      • 2020-10-28
      • 2021-09-11
      • 2020-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-20
      • 1970-01-01
      相关资源
      最近更新 更多