如何使用 pythonanywhere 部署 FastAPI 端点?

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

我一直在尝试使用 FastAPI 端点部署 EasyOCR(如果它在 CPU 上工作就很好),这样任何人都可以通过 https POST 请求使用它。它在我的本地主机上运行良好,但是当我在使用 pythonanywhere 部署它时遇到挑战。我添加了额外的要求,比如 pip install easyocr,pip install python-multipart==0.0.5.

以下是我的代码-

import io
import logging
import re

from fastapi import FastAPI, APIRouter, Request, File, UploadFile
from fastapi.responses import FileResponse, StreamingResponse
import easyocr

import PIL
from PIL import Image, ImageOps
import numpy

app = FastAPI()
router = APIRouter()
ocr = easyocr.Reader(["en"])
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger("ocr")


@app.get("/")
async def root():
    return {"message": "Hello World"}


@app.post("/ocr")
async def do_ocr(request: Request, file: UploadFile = File(...)):
    if file is not None:
        imgFile = numpy.array(PIL.Image.open(file.file).convert("RGB"))
        res = ocr.readtext(imgFile)

        # return array of strings
        return [item[1] for item in res]

    return {"error": "missing file"}


app.include_router(router)
if __name__ == "__main__":
    import uvicorn

    uvicorn.run(app)

我在日志中收到错误-


During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/home/somyatomar15/main.py", line 82, in <module>
    uvicorn.run(app)
  File "/usr/local/lib/python3.10/site-packages/uvicorn/main.py", line 463, in run
    server.run()
  File "/usr/local/lib/python3.10/site-packages/uvicorn/server.py", line 60, in run
    return asyncio.run(self.serve(sockets=sockets))
  File "/usr/local/lib/python3.10/asyncio/runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "/usr/local/lib/python3.10/asyncio/base_events.py", line 633, in run_until_complete
    self.run_forever()
  File "/usr/local/lib/python3.10/asyncio/base_events.py", line 600, in run_forever
    self._run_once()
  File "/usr/local/lib/python3.10/asyncio/base_events.py", line 1896, in _run_once
    handle._run()
  File "/usr/local/lib/python3.10/asyncio/events.py", line 80, in _run
    self._context.run(self._callback, *self._args)
  File "/usr/local/lib/python3.10/site-packages/uvicorn/server.py", line 77, in serve
    await self.startup(sockets=sockets)
  File "/usr/local/lib/python3.10/site-packages/uvicorn/server.py", line 158, in startup
    sys.exit(1)
SystemExit: 1
fastapi pythonanywhere
© www.soinside.com 2019 - 2024. All rights reserved.