使用 Docker 在基于 FastAPI 的后端中导入问题

问题描述 投票:0回答:0

我正在运行基于 FastAPI 的后端,但我遇到了以下错误:

File "/app/main.py", line 6, in <module>
backend-backend-1  |     from app.api.api_v1.api import api_router
backend-backend-1  | ModuleNotFoundError: No module named 'app'

这是导入错误。文件结构如下:

--backend
|---app
|------models
|------schemas
|------etc
|------main.py

我的后端 dockerfile 是这样的:

FROM python:3.9

ENV PYTHONUNBUFFERED=1

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

COPY ./app /app
WORKDIR /app/

ENV PYTHONPATH=/app

EXPOSE 8000

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

当我打印

sys.path
时,我得到以下输出:

['', '/usr/local/bin', '/app', '/usr/local/lib/python39.zip', '/usr/local/lib/python3.9', '/usr/local /lib/python3.9/lib-dynload', '/usr/local/lib/python3.9/site-packages']

/app
在那里。您知道可能导致问题的原因是什么吗?在此先感谢您提供的任何帮助。

python docker docker-compose python-import fastapi
© www.soinside.com 2019 - 2024. All rights reserved.