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

Ubuntu 20.04 WSL下docker-compose build报错文件不存在但实际存在

问题原因

本地执行pip install -e .[dev]正常是因为本地项目目录下存在完整的README.md、源码目录等依赖文件,但Docker构建过程中,你仅通过COPY指令将setup.py、init.sql传入了镜像,README.md和源码目录并未被复制到镜像内的/home/asdf1234/路径下,所以setup.py执行时找不到对应文件抛出异常。

解决步骤
  • 修改Dockerfile,补充缺失文件的COPY指令,修改后的Dockerfile参考如下:
FROM python:3.8
ENV PYTHONUNBUFFERED 1
WORKDIR /home/asdf1234/
COPY setup.py /home/asdf1234/setup.py
# 补充复制README.md
COPY README.md /home/asdf1234/README.md
# 补充复制源码目录(setup.py中配置了packages从src目录查找,必须复制)
COPY src/ /home/asdf1234/src/
COPY init.sql /docker-entrypoint-initdb.d/
RUN pip install -e .[dev]
CMD ["flask", "run", "--eager-loading", "-h", "0.0.0.0", "-p", "5000"]
  • 检查项目根目录的.dockerignore文件,确认没有将README.md、src目录加入忽略规则,如果存在对应条目直接删除即可。
  • 重新执行docker-compose build命令即可正常构建。

如果仅需要临时调试避免报错,也可以修改setup.py给读取README.md的逻辑增加异常捕获,该方案不建议长期使用:

try:
    with open(path.join(THIS_DIRECTORY, "README.md"), encoding="utf-8") as f:
        LONG_DESCRIPTION = f.read()
except FileNotFoundError:
    LONG_DESCRIPTION = DESCRIPTION

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 17:36:02