Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用aiomultiprocess?_Python_Python 3.x_Python Asyncio_Multiprocess - Fatal编程技术网

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())您想将您的评论作为答案发布,以便我可以接受吗?谢谢