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

Docker容器中Python模块test_copilot无法导入问题求助

问题原因及解决方法

核心原因

你犯了两个关键错误:

  1. pip install -r requirements.txt仅安装了第三方依赖包,你的test_copilot本地模块并没有被安装到容器的Python环境中,Python自然找不到它。
  2. 直接运行/app/src/test_copilot/main.py时,Python默认的模块搜索路径不包含/app/src,即便目录下有__init__.py,也无法识别为合法的Python包。

三种可行解决方案

方案一:用Poetry完整安装项目(推荐)

Poetry本身支持直接安装整个项目(包括本地模块),无需导出requirements.txt绕弯:

FROM python:3.10-alpine
RUN apk update && apk upgrade
RUN pip install -U pip poetry==1.1.13
WORKDIR /app
COPY ./copilot-prototype .
# 安装所有依赖,同时将本地项目作为包安装到Python环境
RUN poetry install --no-dev  # --no-dev 可去掉开发依赖,按需添加
# 用Poetry的虚拟环境运行代码,确保路径正确
CMD [ "poetry", "run", "python", "/app/src/test_copilot/main.py" ]

方案二:临时添加Python模块搜索路径

直接在运行命令中指定PYTHONPATH,让Python能找到/app/src下的包:

FROM python:3.10-alpine
RUN apk update && apk upgrade
RUN pip install -U pip poetry==1.1.13
WORKDIR /app
COPY ./copilot-prototype .
RUN poetry export --without-hashes --format=requirements.txt > requirements.txt
RUN pip install -r requirements.txt
# 通过PYTHONPATH将src目录加入模块搜索路径
CMD [ "sh", "-c", "PYTHONPATH=/app/src python /app/src/test_copilot/main.py" ]

方案三:用Pip安装本地项目

在安装完第三方依赖后,手动把本地项目安装到Python环境:

FROM python:3.10-alpine
RUN apk update && apk upgrade
RUN pip install -U pip poetry==1.1.13
WORKDIR /app
COPY ./copilot-prototype .
RUN poetry export --without-hashes --format=requirements.txt > requirements.txt
RUN pip install -r requirements.txt
# 将本地项目安装为Python包(-e 是可编辑模式,方便调试)
RUN pip install -e .
CMD [ "python", "/app/src/test_copilot/main.py" ]

额外注意事项

确保你的COPY ./copilot-prototype .命令是正确的——本地的copilot-prototype目录下必须包含src文件夹,否则容器内/app/src不存在,所有方案都会失效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 12:05:02