python - 使用 gunicorn+Flask 时 Google Cloud Vision 没有响应
问题描述
我是 Google Vision API 的新手,但我使用 gunicorn 和烧瓶已经有一段时间了。我安装了所有必需的库。我通过 gunicorn bash 文件在环境中有我的 api 密钥。每当我尝试使用 gcp API 时,它都会冻结而没有响应。有人可以帮忙吗?这是我的gunicorn_start.bash
NAME="test"
NUM_WORKERS=16
PYTHONUNBUFFERED=True
FLASK_DIR=/home/user/fold/API/
echo "Starting $NAME"
cd $FLASK_DIR
conda activate tf
export development=False
export GOOGLE_APPLICATION_CREDENTIALS='/home/user/test-6f4e7.json'
exec /home/user/anaconda3/envs/tf/bin/gunicorn --bind 0.0.0.0:9349 --timeout 500 --worker-class eventlet --workers $NUM_WORKERS app:app
编辑 它在 API 调用期间冻结。API调用代码:
client = vision.ImageAnnotatorClient()
with io.open(path, 'rb') as image_file:
content = image_file.read()
image = vision.types.Image(content=content)
response = client.document_text_detection(image=image)
没有日志,因为它只是冻结,没有别的
解决方案
我有完全相同的问题,结果证明是gunicorn的错。当我切换到 Django 开发服务器时,问题就消失了。我尝试使用较旧的 gunicorn 版本(回到 2018 年),但问题仍然存在。我可能应该将此报告给 gunicorn。:D
在此期间将切换到 uwsgi。
推荐阅读
- react-native - 如何在 react native 中使用 expo-image-picker 上传图像
- c# - 如何验证模拟不返回特定的返回类型
- r - 使用 R Shiny 处理大数据表的最佳实践
- inheritance - 引用一个可变的母类(继承)
- r - R中带有ggplot的堆积面积图:如何只使用每个对应x的最高y?
- reactjs - 有没有办法将状态从子组件设置到父组件?
- laravel-backpack - 禁用过去的日期
- powershell - 如何在 Active Directory 组中填写 Notes 属性?
- ruby - jenkins slave 运行 fpm 命令时出错(/usr/bin/env: ruby_executable_hooks: No such file or directory)
- logging - Wildfly 禁用日志到 server.log