when i use docker-compose to install a fastapi project, i got AssertionError:

when i use docker-compose to install a fastapi project, i got AssertionError:

当我使用docker-compose安装一个fastapi项目时,我得到了AssertionError: jinja2 must be installed to use Jinja2Templates

但是当我使用 env 安装它时,那将是 运行 很好。

我的OS:

Ubuntu18.04STL

我的requirements.txt:

fastapi~=0.68.2
starlette==0.14.2
pydantic~=1.8.1

uvicorn~=0.12.3
SQLAlchemy~=1.4.23

# WSGI
Werkzeug==1.0.1

pyjwt~=1.7.0

# async-exit-stack~=1.0.1
# async-generator~=1.10

jinja2~=2.11.2

# assert aiofiles is not None, "'aiofiles' must be installed to use FileResponse"
aiofiles~=0.6.0
python-multipart~=0.0.5

requests~=2.25.0
pyyaml~=5.3.1
# html-builder==0.0.6
loguru~=0.5.3
apscheduler==3.7.0

pytest~=6.1.2
html2text==2020.1.16
mkdocs==1.2.1

Docker 文件

FROM python:3.8
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1

WORKDIR /server
COPY requirements.txt /server/
RUN pip install -r requirements.txt
COPY . /server/

docker-compose.yml

version: '3.7'

services:
  figbox_api:
    build:
        context: .
        dockerfile: Dockerfile
    command:  uvicorn app.main:app --port 8773 --host 0.0.0.0 --reload
    volumes:
    - .:/server
    ports:
    - 8773:8773

我需要提供一些其他信息吗?

谢谢

我在 heroku 上遇到了同样的问题,错误来自 Jinja2 版本 2.11.x 并且它 运行 在本地但不在 Heroku 中。

只需安装最新版本的 jinja2,它也适用于您的情况。

pip install Jinja2==3.1.2
or 
pip install Jinja2 --upgrade