Python 如何使用aiomultiprocess?
我发现这个包Python 如何使用aiomultiprocess?,python,python-3.x,python-asyncio,multiprocess,Python,Python 3.x,Python Asyncio,Multiprocess,我发现这个包aiomultiprocess,它似乎可以同时进行多处理和异步 from aiohttp import request from aiomultiprocess import Pool async def get(url): async with request("GET", url) as response: return await response.text("utf-8") async def main(
aiomultiprocess
,它似乎可以同时进行多处理和异步
from aiohttp import request
from aiomultiprocess import Pool
async def get(url):
async with request("GET", url) as response:
return await response.text("utf-8")
async def main():
urls = ["https://jreese.sh", "https://www.google.com", ]
async with Pool() as pool:
async for result in pool.map(get, urls):
print(result)
但是,尝试运行示例代码完全没有任何作用
尝试调用main()
时出现错误运行时警告:从未等待协同路由“main”
。我找不到如何触发代码的实际示例
关于这一点的唯一其他问题没有得到回答。aiomultiprocess文档示例没有介绍如何调用循环。该函数需要通过asyncio调用
import asyncio
from aiohttp import request
from aiomultiprocess import Pool
async def get(url):
async with request("GET", url) as response:
return await response.read()
async def main():
urls = ["https://jreese.sh", "https://www.google.com", ]
async with Pool() as pool:
async for result in pool.map(get, urls):
print(result)
if __name__ == '__main__':
# for Python 3.7
asyncio.run(main())
# for Python 3.6
# loop = asyncio.get_event_loop()
# loop.run_until_complete(main())
aiomultiprocess
文档示例不包括如何调用循环。该函数需要通过asyncio调用
import asyncio
from aiohttp import request
from aiomultiprocess import Pool
async def get(url):
async with request("GET", url) as response:
return await response.read()
async def main():
urls = ["https://jreese.sh", "https://www.google.com", ]
async with Pool() as pool:
async for result in pool.map(get, urls):
print(result)
if __name__ == '__main__':
# for Python 3.7
asyncio.run(main())
# for Python 3.6
# loop = asyncio.get_event_loop()
# loop.run_until_complete(main())
这回答了你的问题吗?我提供的代码示例来自文档本身,因此我已经阅读了文档。不幸的是,它不是一个完整的工作示例,所以我正在寻找使它工作的最后一行@Carcigenicate我看了那个问题,但我的理解是答案直接调用这个库(aiomultiprocess)可能包装的底层包(asyncio)。可能有一种推荐的方法可以在不直接使用asyncio的情况下使用aiomultiprocess来实现这一点,因为调用asyncio会破坏这个库的用途?我对此表示怀疑。我从未使用过该库,但您可能需要
asyncio.run
,或者处理协同程序的其他核心方法之一。@Carcigenicate谢谢,就是这样。这个例子确实不完整。我使用的是3.6,所以loop=asyncio.get_event_loop()loop.run_直到_complete(main())您想将您的评论作为答案发布,以便我可以接受吗?谢谢这能回答你的问题吗?我提供的代码示例来自文档本身,因此我已经阅读了文档。不幸的是,它不是一个完整的工作示例,所以我正在寻找使它工作的最后一行@Carcigenicate我看了那个问题,但我的理解是答案直接调用这个库(aiomultiprocess)可能包装的底层包(asyncio)。可能有一种推荐的方法可以在不直接使用asyncio的情况下使用aiomultiprocess来实现这一点,因为调用asyncio会破坏这个库的用途?我对此表示怀疑。我从未使用过该库,但您可能需要asyncio.run
,或者处理协同程序的其他核心方法之一。@Carcigenicate谢谢,就是这样。这个例子确实不完整。我使用的是3.6,所以loop=asyncio.get_event_loop()loop.run_直到_complete(main())您想将您的评论作为答案发布,以便我可以接受吗?谢谢