首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >新的Asyncio -我正在尝试用ccxt实现异步,并得到了这个错误

新的Asyncio -我正在尝试用ccxt实现异步,并得到了这个错误
EN

Stack Overflow用户
提问于 2022-03-02 23:24:40
回答 1查看 772关注 0票数 1

我试着在这里简单地开始,这样我就能掌握这些东西的窍门了。我理解异步的前提,但是试图与ccxt一起使用它是如此的令人费解。除了可以转发我的异步文档之外,还有推荐的资源吗?

代码语言:javascript
运行
复制
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())

我的错误是:

代码语言:javascript
运行
复制
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
EN

回答 1

Stack Overflow用户

发布于 2022-03-06 11:34:08

这应该是可行的:

代码语言:javascript
运行
复制
import time
import asyncio
import ccxt.async_support as ccxt
import configpro

print('CCXT Version:', ccxt.__version__)


async def test(exchange):
    ticker = await exchange.fetch_ticker('BTC/USD')
    pprint(ticker)

    
async def main():
    exchange = ccxt.coinbasepro({
        'apiKey': configpro.apiKey,
        'secret':configpro.secret,
        'password': configpro.password,
    })
    print(f"started at {time.strftime('%X')}")
    await test(exchange)
    print(f"finished at {time.strftime('%X')}")
    await exchange.close()


asyncio.run(main())

请查看这里的示例:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71330370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档