Я пытаюсь прочитать png-файл и вывести на терминал цифровую матрицу изображения, используя imread функцию opencv на сервере, как это
import cv2
from flask import Flask
import os
@application.route('/readImage',methods=['POST'])
def handleHTTPPostRequest():
imagePath = f'{os.getcwd()}/input.png'
print('image path is', imagePath)
print(cv2.__version__)
im = cv2.imread(imagePath,cv2.IMREAD_COLOR)
print(im)
return 'success'
Это дает ожидаемый результат на моей локальной машине (Ubuntu 18.04), независимо от того, сколько раз я его выполняю. Я перенес это в эластичный бобовый стебель (CentOS) с необходимой настройкой. Запрос выполняется нормально (дает правильные журналы и успех), когда я делаю первый звонок.
Но когда я делаю пост-вызов во второй раз, он выводит только первые два журнала (версия imagepath и cv2) и на некоторое время застревает там. и через некоторое время он показывает эту ошибку
End of script output before headers: application.py
Я добавил еще одну строку перед cv2.imread, чтобы убедиться, что файл существует
print('does the file exists',os.path.isfile(imagePath) )
Это возвращает истину каждый раз. Я перезагружал сервер несколько раз, похоже, он работает только в первый раз, а cv2.imread () зависает после первого звонка. Что мне не хватает