TypeError:从3.10开始,*loop*参数已从Lock()中删除,因为它不再是必需的



如何解决此问题?

TypeError: As of 3.10, the *loop* parameter was removed from Lock() since it is no longer necessary

我正在尝试使用Binance套接字管理器,但我收到了这个错误。

应该只是将您的websockets版本从9.1升级到10.x

pip install --upgrade websockets

我也遇到过同样的问题。我的机器人在MacOS上运行得很好,但当我在苹果上安装Fedora时,它突然出现了。在转到其他操作系统之前,我从未解决过这个问题,但我不知道它是否会发生在Ubuntu或Zorin上,因为PIP问题早在那之前就阻止了我。至于我的主要笔记本电脑,一台运行Windows 11的MSI游戏笔记本电脑,我从未在命令行python、IDLE、PyCharm、Visual Studio或Visual Studio Code上遇到过问题,直到今天早上我的笔记本电脑过热并关闭。当我再次启动时,系统不再识别我一直在使用的模块(pandas、pytz、python-binance(,必须再次安装它们(从高架命令行安装,这似乎很奇怪(。然后,当从VS运行程序时,再次出现错误。命令提示符返回相同的错误,但是IDLE运行程序时没有问题。我还不知道如何直接修复这个错误,甚至不知道为什么会发生,但似乎有一些方法可以绕过它。错误显示为"截止3.10…",所以如果你找不到可以运行它的应用程序,你可以尝试将其回滚到3.9。对不起,我帮不了什么忙。希望你能找到答案。我也会继续找的。

我提出了几个解决方案。

  1. 我创建了自己的股票代码:

    play = client.get_symbol_ticker(symbol='BTCUSDT)
    def start_ticker():
    global play
    while True:
    play = client.get_symbol_ticker(symbol='BTCUSDT')
    print(play['Price'])
    time.sleep(1)
    bsm = ThreadedWebsocketManager()
    bsm.start()
    start_ticker()
    

现在,这只是一个初步的例子。我已经将它绑定到我的实际交易循环中,并删除了打印功能,但逐秒存储和处理数据。我同时运行多个令牌,并在处理完条件评估后,在整个循环结束时设置睡眠。你可以在测试循环的持续时间后调整休息时间,但总的来说,它从未被证明是关键的,因为它会在一秒钟内停止。需要注意的是,它只提供统一的价格,但您可以查看文档中的其他查询:Python Binance 0.2.0 Websockets documentation

  1. 安装Python 3.9:这在Windows上是最容易的,因为没有系统进程依赖它。如果你将它与当前版本并行安装,你将不得不采取额外的步骤来解决它,而不是更高版本,例如使用PATH编辑或虚拟环境。Anaconda是一个简单的工具,它可以轻松创建虚拟环境。我在运行Fedora的PC上运行我的交易员,事实证明,Fedora在服务器连接方面更可靠(不幸的是,如果没有手动重新同步的循环PowerShell脚本,Windows 11就无法保持正确的时间,即使时间问题得到修复,我也会出现Windows信号灯错误(。然而,Fedora的一些系统功能依赖于最新的Python,因此您必须在其旁边安装3.10之前的版本,并创建一个符号链接和一个虚拟环境来运行它。

  2. 修改python二进制模块以使用不同的Loop函数,我相信这可以用PyCharm或Anacondas完成,但从我读到的内容来看,这不是最好的想法,我认为目前没有必要。此外,我可能会打破它。

TypeError: As of 3.10, the *loop* parameter was removed from Queue() since it is no longer necessary

我在尝试使用proxybroker包时遇到了这个错误。

我只是将python版本降级到3.6.8,现在错误已经消失了。

也许您的错误是由python版本引起的。

也许有助于

确保你安装了asyncio并导入了它。我也有同样的问题。

相关内容

最新更新