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

使用Distroless镜像时无法导入自定义Python模块问题求助

解决自定义模块无法导入的问题

错误原因

你设置的PYTHONPATH环境变量为/source,但实际source目录通过COPY . /app被复制到了容器内的/app/source路径下,Python无法在/source路径找到memory.py模块,导致导入失败。

解决方案

方案1:修正PYTHONPATH路径

修改Dockerfile中的PYTHONPATH配置,指向容器内实际的source目录位置:

FROM gcr.io/distroless/python3-debian11
COPY --from=build /venv /venv
COPY . /app
WORKDIR /app
ENV PYTHONPATH /app/source  # 修正为实际路径
ENTRYPOINT ["/venv/bin/python3", "scripts/main.py"]

方案2:优化Dockerfile(可选)

Build阶段的代码复制操作是多余的,因为第二阶段已经通过COPY . /app复制了所有代码,可删除Build阶段的无关命令,简化Dockerfile:

FROM debian:11-slim AS build

RUN apt-get update && \
    apt-get install --no-install-suggests --no-install-recommends --yes python3-venv gcc libpython3-dev && \
    python3 -m venv /venv && \
    /venv/bin/pip install --upgrade pip setuptools wheel

FROM gcr.io/distroless/python3-debian11
COPY --from=build /venv /venv
COPY . /app
WORKDIR /app
ENV PYTHONPATH /app/source
ENTRYPOINT ["/venv/bin/python3", "scripts/main.py"]

验证

重新构建镜像并运行容器,Python将能正确找到/app/source下的memory模块,导入错误即可解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 19:25:25