【问题标题】:ModuleNotFoundError: No module named 'app' fastapi dockerModuleNotFoundError:没有名为“app”fastapi docker的模块
【发布时间】:2022-07-15 04:51:05
【问题描述】:
FROM python:3.8
WORKDIR /app 

COPY requirements.txt /
RUN pip install --requirement /requirements.txt

COPY ./app /app

EXPOSE 8000
CMD ["uvicorn", "app.main:app", "--host=0.0.0.0" , "--reload" , "--port", "8000"]

我用的时候

docker-compose up -d
ModuleNotFoundError: 没有名为“app”的模块

  • Fastapi 框架中的文件夹:

  • fastapi

    • 应用程序

      -main.py

  •    language_detector.py
    
  • Dockerfile

  • 码头工人撰写

【问题讨论】:

  • 我认为你的应用文件夹中需要一个__index__.py ...
  • 你能展示你的 docker-compose 文件吗?

标签: python docker fastapi


【解决方案1】:
CMD ["uvicorn", "main:app", "--host=0.0.0.0" , "--reload" , "--port", "8000"]

你的工作目录是 /app 并且 main.py 文件已经在那里。所以你不需要调用 app.main 模块。直接在 CMD 中调用 main.py 脚本即可。

【讨论】:

    【解决方案2】:

    尝试在之前创建 /app 文件夹

    FROM python:3.8
    RUN mkdir -p /app
    WORKDIR /app 
    
    COPY requirements.txt /
    RUN pip install --requirement /requirements.txt
    
    COPY ./app /app
    
    EXPOSE 8000
    CMD ["uvicorn", "app.main:app", "--host=0.0.0.0" , "--reload" , "--port", "8000"]
    

    并启动它:

    docker-compose up --build

    【讨论】:

    • 同样的错误。
    【解决方案3】:

    该问题可能是由您在 docker compose 上定义卷挂载的方式引起的: 更多关于坐骑here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-03
      • 2021-11-03
      • 1970-01-01
      • 1970-01-01
      • 2021-07-05
      • 1970-01-01
      • 2019-03-28
      • 1970-01-01
      相关资源
      最近更新 更多