__call __ () kehilangan 1 argumen posisi yang diperlukan: 'kirim' FastAPI di App Engine
Saat mencoba menghosting API di App Engine, kesalahan berikut terus muncul. Program ini biasanya berjalan di Flask yang berfungsi tapi sangat lambat.
Kesalahan:
"Traceback (most recent call last):
File "/env/lib/python3.7/site-packages/gunicorn/workers/sync.py", line 134, in handle
self.handle_request(listener, req, client, addr)
File "/env/lib/python3.7/site-packages/gunicorn/workers/sync.py", line 175, in handle_request
respiter = self.wsgi(environ, resp.start_response)
TypeError: __call__() missing 1 required positional argument: 'send'
"
File Docker:
FROM gcr.io/google_appengine/python
RUN apt-get update && apt-get install -y ffmpeg
# Create a virtualenv for dependencies. This isolates these packages from
# system-level packages.
RUN virtualenv /env -p python3.7
# Setting these environment variables are the same as running
# source /env/bin/activate.
ENV VIRTUAL_ENV /env
ENV PATH /env/bin:$PATH
ADD requirements.txt /app/requirements.txt
RUN pip install -r /app/requirements.txt
# Add the application source code.
ADD . /app
CMD gunicorn -w 4 -k uvicorn.workers.UvicornWorker main:app
app.yaml
runtime: custom
env: flex
entrypoint: gunicorn -w 4 -k uvicorn.workers.UvicornWorker main:app
service: encoder
runtime_config:
python_version: 3
handlers:
- url: /.*
script: auto
Jawaban
1 DustinIngram
App Engine memerlukan main.py
file Anda untuk mendeklarasikan app
variabel yang sesuai dengan Aplikasi WSGI .
Karena FastAPI adalah kerangka web asinkron, itu tidak kompatibel dengan WSGI (yang sinkron).
Opsi terbaik Anda adalah menggunakan layanan seperti Cloud Run , yang memungkinkan Anda menentukan runtime Anda sendiri dan menggunakan server HTTP asinkron yang kompatibel dengan FastAPI.
Selalu Menjadi Ancaman: Mengapa Orang Berkulit Coklat dan Hitam Tidak Bisa Nyaman di Amerika Serikat
Jana Duggar: Semua yang Dia Katakan Tentang Cinta dan Jendela 5 Tahunnya untuk Menemukan 'Yang Satu'