擅长:python、mysql、java
<p>不要在<code>async</code>函数内部使用<code>loop.run_until_complete</code>调用。该方法的目的是在sync上下文中运行异步函数。无论如何,下面是您应该如何更改代码:</p>
<pre><code>async def faire_toutes_les_requetes_sans_bloquer():
async with aiohttp.ClientSession() as session:
futures = [requete_sans_bloquer(x, session) for x in range(10)]
await asyncio.gather(*futures)
print("Fin de la boucle !")
loop = asyncio.get_event_loop()
loop.run_until_complete(faire_toutes_les_requetes_sans_bloquer())
</code></pre>
<p>注意,单独的<code>faire_toutes_les_requetes_sans_bloquer()</code>调用创建的未来必须通过显式<code>await</code>等待(因为您必须在<code>async</code>上下文中)或传递给某个事件循环。当Python独自一人抱怨的时候。在你的原始代码中,你没有做这些。</p>