RuntimeError: This event loop is already running asyncio
发布时间:2019-04-17T17:07:03:手机请访问
文章目录
错误提示如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
--------------------------------------------------------------------------- RuntimeError Traceback (most recent call last) <ipython-input-9-34093fabd564> in <module> 11 await browser.close() 12 ---> 13 asyncio.get_event_loop().run_until_complete(main()) ~/anaconda3/lib/python3.6/asyncio/base_events.py in run_until_complete(self, future) 469 future.add_done_callback(_run_until_complete_cb) 470 try: --> 471 self.run_forever() 472 except: 473 if new_task and future.done() and not future.cancelled(): ~/anaconda3/lib/python3.6/asyncio/base_events.py in run_forever(self) 423 self._check_closed() 424 if self.is_running(): --> 425 raise RuntimeError('This event loop is already running') 426 if events._get_running_loop() is not None: 427 raise RuntimeError( RuntimeError: This event loop is already running |
运行的是如下的代码
1 2 3 4 5 6 7 8 9 10 11 12 13 |
import asyncio from pyppeteer import launch from pyquery import PyQuery as pq async def main(): browser = await launch() page = await browser.newPage() await page.goto('http://quotes.toscrape.com/js/') doc = pq(await page.content()) print('Quotes:', doc('.quote').length) await browser.close() asyncio.get_event_loop().run_until_complete(main()) |
在网上搜索的解决方法:
添加如下两行代码:
1 2 3 |
import nest_asyncio nest_asyncio.apply() |