Асинхронная ошибка Python: ожидание разрешено только в асинхронной функцииPython

Программы на Python
Ответить
Anonymous
 Асинхронная ошибка Python: ожидание разрешено только в асинхронной функции

Сообщение Anonymous »

Я читаю файлы асинхронно, но сталкиваюсь с ошибками, говорящими, что ожидание разрешено только в асинхронной функции. Эта ошибка возникает, когда ключевое слово await используется внутри функции, которая не была помечена как async, но я пометил read_blob() как async
У меня нет проблем при запуске этого в блокноте .ipynb Jupiter (в котором я запускаю код ячейку за ячейкой последовательно), но когда я запускаю его в VSCode в .py, это ошибка.

Код: Выделить всё

from azure.storage.blob.aio import ContainerClient
import asyncio
from azure.core.exceptions import ResourceNotFoundError
from io import StringIO, BytesIO

class AsyncContainerClient(ContainerClient):
async def read_blob(self,
blob_name: str,
add_blob_name_col=False,
add_blob_date_col=False,
preprocessing_func=None,
zip_regex=r'.+\.gz$',
csv_regex='.+\.csv(\.gz)?$',
parquet_regex='.+\.parquet$',
regex_string=None,
**kwargs):
assert isinstance(blob_name, str), f'{blob_name} is not a string'

try:
blob = (await self.download_blob(blob_name))

with BytesIO() as byte_stream:
await blob.readinto(byte_stream)
byte_stream.seek(0)
return pd.read_parquet(byte_stream, engine='pyarrow')
except ResourceNotFoundError:
return 0

blob_sas_url = "https://proan.blob"
acc = AsyncContainerClient.from_container_url(blob_sas_url)

test_dirs = ["models1/model.parquet", "models2/model.parquet", "models3/model.parquet"]
res = await asyncio.gather(*(acc.read_blob(f) for f in test_dirs))
Изображение


Подробнее здесь: https://stackoverflow.com/questions/727 ... c-function
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»