asyncio python код отлично работает в ma c osx (python 3.7), но не в windows (python 3.8) - PullRequest
0 голосов
/ 09 мая 2020

Следующий код - это шаблонный код с asyncio в python для получения ответа с URL-адресов. Этот код отлично работает в ma c с python 3.7, но в windows 10 с python 3.8 он не достигает оператора печати «здесь». Любые подсказки о том, почему это так и как это можно исправить в windows?

 def Initiate(list, folder_week, xmlfile, csvfile):
        bap = BAPRequest(folder_week, xmlfile, csvfile)
        loop = asyncio.new_event_loop()
        asyncio.set_event_loop(loop)
        future = loop.create_future()
        future = asyncio.ensure_future(bap.run(list, True))
        loop.run_until_complete(future)
        loop.close()

async def fetch(self, url, incident, session, csv):
    async with session.get(url) as response:
        **print("in here")** 
        self.format_output(await response.read())

async def bound_fetch(self, sem, url, incident, session, csv):
    async with sem:
        return await self.fetch(url, incident, session, csv)

async def run(self, r, csv):
    url = self.conversations_url
    tasks = []
    sem = asyncio.Semaphore(1000)
    sslcontext = ssl.create_default_context(cafile=certifi.where())
    sslcontext.load_cert_chain('./cert/certificate.pem',
                       './cert/plainkey.pem')

    async with ClientSession(connector=aiohttp.TCPConnector(ssl=sslcontext, force_close=True)) as session:
        for i in r:
            # pass Semaphore and session to every GET request
            task = asyncio.ensure_future(self.bound_fetch(sem, url + str(i), i, session, csv))
            tasks.append(task)
        await asyncio.gather(*tasks, return_exceptions=True)
        await session.close()   
    return "Done"
...