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

Dataflow容器中安装Poetry失败,出现ModuleNotFoundError错误

解决Dataflow容器中Poetry执行报错的问题

问题分析

核心问题是Dataflow Flex模板基础镜像中提前设置了PIP_NO_DEPS=True环境变量,导致Poetry安装过程中无法自动拉取依赖组件(如cleo、poetry.core)。而apache/beam_python3.8_sdk:2.45.0镜像能正常运行,是因为该镜像没有设置这个限制依赖安装的变量。

可行解决方案

方案一:临时取消PIP_NO_DEPS限制后安装Poetry

修改Dockerfile中Poetry的安装逻辑,在安装Poetry时临时禁用PIP_NO_DEPS,确保Poetry自身的依赖能正常安装:

# 移除提前设置的ENV PIP_NO_DEPS=True,改为Poetry安装完成后再设置
# ENV PIP_NO_DEPS=True

# 安装Poetry(临时取消PIP_NO_DEPS限制,保证依赖正常安装)
RUN PIP_NO_DEPS=False curl -sSL https://install.python-poetry.org | python -
ENV PATH "/root/.local/bin/:${PATH}"
RUN poetry --version

# 安装完成后再设置PIP_NO_DEPS,不影响后续步骤
ENV PIP_NO_DEPS=True

方案二:用pip安装完整的Poetry包

如果偏好使用pip安装,直接安装完整的Poetry包(会自动拉取所有必要依赖),替换原有的curl安装命令:

# 替换原curl安装命令,改用pip安装完整Poetry
RUN pip install --no-cache-dir poetry
ENV PATH "/root/.local/bin/:${PATH}"
RUN poetry --version

验证方法

构建修改后的容器后,执行以下命令测试:

# 检查Poetry版本
docker run --rm --entrypoint /bin/bash <你的镜像名称> -c 'poetry --version'
# 测试Poetry配置命令
docker run --rm --entrypoint /bin/bash <你的镜像名称> -c 'poetry config virtualenvs.create false'

若命令正常执行无报错,说明问题已解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 22:33:17