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

AWS Lambda Docker容器ImportModuleError求助:找不到polars模块

问题排查与解决方案

1. 核对Dockerfile中Poetry依赖安装逻辑

Poetry在容器环境中容易出现虚拟环境导致的依赖路径问题,需确认以下配置:

  • 强制禁用Poetry虚拟环境生成(容器内无需独立虚拟环境):
    ENV POETRY_VIRTUALENVS_CREATE=false
    
  • 执行生产环境专属的依赖安装命令,避免开发依赖干扰:
    RUN poetry install --only main --no-interaction --no-ansi
    
  • 查看Docker构建日志,确认日志中存在Installing polars (x.y.z)类的安装记录,验证依赖是否被正确拉取。

2. 检查工作目录与文件路径配置

错误提示的"无法导入app模块"实际是app.py中导入polars失败的连锁反应,需确认文件路径是否在Python搜索范围内:

  • 确保Dockerfile中正确设置工作目录并复制所有必要文件:
    WORKDIR /app
    COPY pyproject.toml poetry.lock ./
    COPY app.py ./
    
  • 若使用AWS Lambda兼容镜像(从测试URL格式判断大概率是此类场景),需将文件复制到镜像默认的模块加载路径/var/task:
    WORKDIR /var/task
    COPY pyproject.toml poetry.lock ./
    COPY app.py ./
    

3. 容器内直接验证依赖与路径

进入运行中的容器,手动排查环境问题:

  • 进入容器:
    docker exec -it $(docker ps -q --filter name=etl_pipeline) bash
    
  • 验证polars是否安装成功:
    python -c "import polars; print(polars.__version__)"
    
  • 若polars能正常导入,检查Python搜索路径是否包含app.py所在目录:
    python -c "import sys; print(sys.path)"
    

4. 确保Poetry配置文件完整性

必须将poetry.lock与pyproject.toml一同复制到容器中,避免依赖解析偏差:

COPY pyproject.toml poetry.lock ./

仅复制pyproject.toml会导致Poetry重新解析依赖,可能出现版本不兼容或安装失败的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 18:17:06