【发布时间】:2022-03-06 19:34:08
【问题描述】:
我试图从这里开始简单,这样我就可以掌握这些东西的窍门。我理解 asyncio 的前提,但是尝试将它与 ccxt 一起使用时会让人感到困惑。除了 asyncio 文档之外,还有什么推荐的资源可以转发给我吗?
import time
import ccxt.async_support as ccxt
import configpro
exchange = ccxt.coinbasepro({
'apiKey': configpro.apiKey,
'secret':configpro.secret,
'password': configpro.password,
'enableRateLimit': True})
async def test():
async with exchange as session:
print(await session.fetch_ticker('BTC/USD'))
async def main():
print(f"started at {time.strftime('%X')}")
await test()
print(f"finished at {time.strftime('%X')}")
asyncio.run(main())
我的错误:
Exception ignored in: <function _ProactorBasePipeTransport.__del__ at 0x000001ED6BE8EDC0>
Traceback (most recent call last):
File "C:\Users\micha\AppData\Local\Programs\Python\Python39\lib\asyncio\proactor_events.py", line 116, in __del__
self.close()
File "C:\Users\micha\AppData\Local\Programs\Python\Python39\lib\asyncio\proactor_events.py", line 108, in close
self._loop.call_soon(self._call_connection_lost, None)
File "C:\Users\micha\AppData\Local\Programs\Python\Python39\lib\asyncio\base_events.py", line 746, in call_soon
self._check_closed()
File "C:\Users\micha\AppData\Local\Programs\Python\Python39\lib\asyncio\base_events.py", line 510, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
【问题讨论】:
-
哇,谢谢!!像有人回答的那样添加这个有效!
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy()) -
请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。
-
有关更多上下文,这绝对是我的猜测,但您的例外基本上是在事件循环结束后 asyncio 仍在尝试执行任务(显然删除某些内容)。不知道为什么会这样,但这就是我指向那个答案的方向。
标签: python python-asyncio ccxt