You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法通过requirements.txt安装Alexa Skill依赖?求替代方案及pip安装方法

解决MechanicalSoup在Alexa Skill部署中无法通过requirements.txt安装的问题

问题分析

从你提供的依赖列表和部署失败情况来看,核心原因大概率是依赖版本冲突,或是Alexa Skill的Lambda运行环境(默认基于Amazon Linux 2)缺少编译工具链,导致部分需要编译的包(如lxml)安装失败。

解决办法

1. 简化requirements.txt,避免手动列子依赖

MechanicalSoup会自动管理自身的依赖(如beautifulsoup4、requests等),手动罗列所有子依赖反而容易引发版本冲突。修改后的requirements.txt只需保留核心依赖:

boto3==1.9.216
ask-sdk-core==1.11.0
mechanicalsoup==1.2.0

2. 本地用pip安装并打包适配Lambda的依赖

如果是本地打包后上传到Lambda,可按以下步骤操作:

  • 创建并激活虚拟环境:
    python -m venv alexa-skill-env
    # Windows系统
    alexa-skill-env\Scripts\activate
    # macOS/Linux系统
    source alexa-skill-env/bin/activate
    
  • 安装兼容Lambda环境的预编译依赖:
    pip install -r requirements.txt --platform manylinux2014_x86_64 --only-binary=:all: --target ./package
    
  • 打包依赖:
    cd package
    zip -r ../skill-package.zip .
    
  • 将你的技能代码(如lambda_function.py)添加到zip包根目录,再上传到Lambda即可。

3. 排查版本兼容性

若简化依赖后仍失败,尝试升级老旧依赖版本:

  • boto3==1.9.216版本过旧,可尝试升级到boto3==1.28.0(兼容ask-sdk-core的稳定版)
  • ask-sdk-core==1.11.0建议升级到ask-sdk-core==1.30.0左右的稳定版本,再搭配MechanicalSoup使用

4. 使用Lambda层托管依赖

不想手动打包的话,可将MechanicalSoup及其依赖做成Lambda层:

  • 按上述步骤打包依赖后,创建Lambda层并上传该zip包,最后在你的Alexa Skill Lambda函数中关联此层即可。

关键提示

Alexa Skill的Lambda运行环境没有完整编译工具链,务必使用预编译二进制包(通过--only-binary=:all:参数),避免安装需要编译的包。

内容的提问来源于stack exchange,提问作者SatsumaSegment

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 17:50:35