RasWxNeteaseMusic icon indicating copy to clipboard operation
RasWxNeteaseMusic copied to clipboard

关于Python超过最大递归深度的问题

Open PhineasWang opened this issue 7 years ago • 11 comments

您好,我的平台是树莓派3B。 执行python run.py时,显示超出递归深度。我首先在configue.py中手动设定了深度,在30000左后报错SegmentationFault 我换成Python3的环境,依然报错超出递归深度。 请问问题出在哪呢?

PhineasWang avatar Apr 09 '17 05:04 PhineasWang

朋友你好,RasWxNeteaseMusic是基于Python 2.7.x的,如果在2.7.x环境下仍有问题,请把完整的错误信息贴出来,这样比较容易定位问题:)

yaphone avatar Apr 09 '17 07:04 yaphone

前面一切正常,知道我执行“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,会得到一个不完整的二维码,其他进程/听歌都正常。

PhineasWang avatar Apr 09 '17 15:04 PhineasWang

如果注释能够解决问题的话就暂时先注释解决。这个注释不会影响二维码,显示不完整可能和所用的远程终端有关,可以多尝试几个远程工具,如putty/securecrt等,或者用VNC试一下,祝使用愉快!

yaphone avatar Apr 09 '17 15:04 yaphone

首先感谢开发者的热情答复! 使用了Shell5,putty(SSH登录) 以及在树莓派图形化界面下操作,结果都一样。如图所示(具体图形倒是会变化,说明采集了数据) qq 20170410002517

PhineasWang avatar Apr 09 '17 16:04 PhineasWang

收到,朋友,最近上班有点忙,可能需要周末的时候再修复这个问题了~~抱歉哈! 如果你有解决的方案,欢迎pull/request给我,谢谢!

yaphone avatar Apr 09 '17 16:04 yaphone

谢谢开发者!不着急不着急,咱们一起发现问题,解决问题哈。 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

PhineasWang avatar Apr 10 '17 08:04 PhineasWang

太乱了,再发一条: Traceback (most recent call last): File "run.py", line 5, in 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

PhineasWang avatar Apr 10 '17 08:04 PhineasWang

收到,谢谢! 后面我会关注此问题,祝使用愉快~

yaphone avatar Apr 10 '17 14:04 yaphone

@PhineasWang 你这个问题我今天也遇到了,其实你想复杂了,是你python权限不足 你切换到root 账户下运行试试。二维码也可以正常使用

Popeye-liuxw avatar Apr 27 '17 12:04 Popeye-liuxw

谢谢这位朋友!

yaphone avatar Apr 27 '17 14:04 yaphone

@PhineasWang 编辑run.py 作以下修改可解决你的问题

如部分的linux系统,块字符的宽度为一个字符(正常应为两字符),故赋值为2

itchat.auto_login(enableCmdQR=2)

BlackZheng avatar May 19 '17 10:05 BlackZheng