Вы почти правильно поняли.Проблема в том, что run_in_executor
является функцией, аналогичной любой другой, поэтому, если вы передадите ее image_to_string(image)
, Python интерпретирует это как инструкцию для , немедленно вызовет image_to_string
ипередать результат вызова run_in_executor
.
Чтобы избежать этой интерпретации, run_in_executor
принимает функцию , которую он будет вызывать самостоятельно, вдругая нить.За функцией необязательно следуют аргументы, поэтому правильный вызов выглядит следующим образом:
result = await loop.run_in_executor(None, image_to_string, image)