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

Docker部署FastAPI报错:无法找到main模块求助

排查Docker部署FastAPI时"Could not import module 'main'"错误

核心问题分析

这个错误本质是uvicorn在容器当前工作目录下找不到main.py文件,结合你的目录结构和Dockerfile,主要排查以下几个方向:

1. 镜像构建的上下文路径错误

你的Dockerfile和main.py都在src/backend目录下,但如果是在src目录执行docker build命令,COPY . /app会把整个src目录内容复制到容器的/app目录,此时main.py实际路径是/app/backend/main.py,而非/app/main.py,uvicorn自然找不到指定模块。

解决方法:

  • 切换到src/backend目录下执行构建命令:
    cd src/backend
    docker build -t your-image-name .
    
  • 若必须在src目录构建,修改Dockerfile中的COPY指令:
    # 仅复制backend目录下的内容到/app
    COPY backend /app
    

2. 验证容器内文件路径

在Dockerfile中添加调试命令,确认main.py是否在预期的/app目录:

FROM python:3.10
WORKDIR /app

COPY requirements.txt /app/
RUN pip install --no-cache-dir -r requirements.txt

COPY . /app
# 添加此行查看/app目录内容
RUN ls -la /app

CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]

重新构建时查看输出的目录列表,若没有main.py,说明COPY的源路径错误,需调整。

3. 文件名大小写问题

确认文件确实是main.py(全小写),Linux容器环境区分文件名大小写,若实际是Main.py或其他大小写组合,uvicorn会无法识别。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 08:30:06