RasWxNeteaseMusic
RasWxNeteaseMusic copied to clipboard
关于Python超过最大递归深度的问题
您好,我的平台是树莓派3B。 执行python run.py时,显示超出递归深度。我首先在configue.py中手动设定了深度,在30000左后报错SegmentationFault 我换成Python3的环境,依然报错超出递归深度。 请问问题出在哪呢?
朋友你好,RasWxNeteaseMusic是基于Python 2.7.x的,如果在2.7.x环境下仍有问题,请把完整的错误信息贴出来,这样比较容易定位问题:)
前面一切正常,知道我执行“sudo pyhon run.py” 报错 File "/home/pi/RasWxNeteaseMusic/neteaseApi/config.py", line 227, in check_version self.check_version()#这一字段出现了很多次,我1096行缓冲区全被刷屏,最后两行 File "/home/pi/RasWxNeteaseMusic/neteaseApi/config.py", line 146, in check_version if self.config['version'] == self.default_config['version']: RuntimeError: maximum recursion depth exceeded in cmp 粗粗看来,应该是比较中使用了过多的递归导致。我把227行注释,直接Return False,会得到一个不完整的二维码,其他进程/听歌都正常。
如果注释能够解决问题的话就暂时先注释解决。这个注释不会影响二维码,显示不完整可能和所用的远程终端有关,可以多尝试几个远程工具,如putty/securecrt等,或者用VNC试一下,祝使用愉快!
首先感谢开发者的热情答复!
使用了Shell5,putty(SSH登录)
以及在树莓派图形化界面下操作,结果都一样。如图所示(具体图形倒是会变化,说明采集了数据)
收到,朋友,最近上班有点忙,可能需要周末的时候再修复这个问题了~~抱歉哈! 如果你有解决的方案,欢迎pull/request给我,谢谢!
谢谢开发者!不着急不着急,咱们一起发现问题,解决问题哈。
1.关于登陆的问题,我用的是土办法解决,它除了命令行生成二维码,还会生成一张QR.jpg的图片,我索性把图片扫出来。实现了登录,提示正常。为什么命令行显示异常,我猜测是Debian系统的问题。
2.登陆后的操控,能实现部分功能(N下一首,E退出),但H帮助,S搜索,R详情这一类需要返回字符的统统在微信上收不到,也许是因为我注释掉了的原因。
3.原有的错误信息完整版如下(也就是最开始提到那个):
Traceback (most recent call last): File "run.py", line 5, in <module> wnm = WxNeteaseMusic() File "/home/pi/LabWechat/WxNeteaseMusic.py", line 23, in __init__ self.playlist = self.myNetease.get_top_songlist() #默认是热门歌单 File "/home/pi/LabWechat/myapi.py", line 29, in get_top_songlist datalist = self.netease.dig_info(music_list, 'songs') File "/home/pi/LabWechat/neteaseApi/api.py", line 631, in dig_info url, quality, play_time = geturl(data[i]) File "/home/pi/LabWechat/neteaseApi/api.py", line 141, in geturl quality = Config().get_item('music_quality') File "/home/pi/LabWechat/neteaseApi/config.py", line 132, in __init__ if not self.check_version(): File "/home/pi/LabWechat/neteaseApi/config.py", line 227, in check_version self.check_version() ...省略986条上面提到的消息... File "/home/pi/LabWechat/neteaseApi/config.py", line 146, in check_version if self.config['version'] == self.default_config['version']: RuntimeError: maximum recursion depth exceeded in cmp
太乱了,再发一条:
Traceback (most recent call last):
File "run.py", line 5, in
收到,谢谢! 后面我会关注此问题,祝使用愉快~
@PhineasWang 你这个问题我今天也遇到了,其实你想复杂了,是你python权限不足 你切换到root 账户下运行试试。二维码也可以正常使用
谢谢这位朋友!
@PhineasWang 编辑run.py 作以下修改可解决你的问题
如部分的linux系统,块字符的宽度为一个字符(正常应为两字符),故赋值为2
itchat.auto_login(enableCmdQR=2)