首页 > 解决方案 > RecursionError:在比较中超出了最大递归深度致命的 Python 错误:无法从堆栈溢出中恢复

问题描述

google.com当用户键入 URL 或邮件文本将成为超链接/abc123@gmail.com类似 Whatsapp 和 Facebook Messenger时,我想做一个聊天应用程序。但是现在我的代码不能输入任何东西会得到错误:

RecursionError:在比较中超出了最大递归深度致命的 Python 错误:无法从堆栈溢出中恢复。

我不知道如何解决这个问题。我研究谷歌对我没有任何帮助。


    from PyQt5 import QtCore, QtGui, QtWidgets
    import re
    class Ui_Form(object):
        def setupUi(self, Form):
            Form.setObjectName("Form")
            Form.resize(400, 300)
            self.textBrowser = QtWidgets.QTextBrowser(Form)
            self.textBrowser.setGeometry(QtCore.QRect(20, 10, 361, 192))
            self.textBrowser.setObjectName("textBrowser")
            self.pushButton = QtWidgets.QPushButton(Form)
            self.pushButton.setGeometry(QtCore.QRect(300, 220, 93, 28))
            self.pushButton.setObjectName("pushButton")
            self.textEdit = QtWidgets.QTextEdit(Form)
            self.textEdit.setGeometry(QtCore.QRect(20, 210, 271, 41))
            self.textEdit.setObjectName("textEdit")

            self.retranslateUi(Form)
            QtCore.QMetaObject.connectSlotsByName(Form)
            self.pushButton.clicked.connect(self.getvalue)


        def retranslateUi(self, Form):
            _translate = QtCore.QCoreApplication.translate
            Form.setWindowTitle(_translate("Form", "Form"))
            self.pushButton.setText(_translate("Form", "PushButton"))

        def getvalue(self,email):
             s = self.textEdit.toPlainText()
             p = re.match("^.+@(\[?)[a-zA-Z0-9-.]+.([a-zA-Z]{2,3}|[0-9]{1,3})(]?)$",str (email))
             q = re.compile("^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)?[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$",re.IGNORECASE)
             if (p != None and self.getvalue(s) == True):
                 links ='{1}'.format(('mailto:'+s), s)
                 self.textBrowser.setOpenExternalLinks(True)
                 self.textBrowser.setText(links)
                 print("s")
             elif (q != None and self.getvalue(s) == True):
                 link ='{1}'.format(('http://'+s), s)
                 self.textBrowser.setOpenExternalLinks(True)
                 self.textBrowser.setText(link)
                 print("t")
             else:
                 self.textBrowser.append(s)
                 print("u")

    if __name__ == "__main__":
        import sys
        app = QtWidgets.QApplication(sys.argv)
        MainWindow = QtWidgets.QMainWindow()
        ui = Ui_Form()
        ui.setupUi(MainWindow)
        MainWindow.show()
        sys.exit(app.exec_())

块引用

结果 :

回溯(最后一次调用):文件“c:\Users\User.vscode\extensions\ms-python.python-2018.12.1\pythonFiles\lib\python\ptvsd_vendored\pydevd_pydevd_bundle\pydevd_trace_dispatch_regular.py”,第 373 行,在如果不是,则调用 cache_skips 中的 is_stepping 和 frame_cache_key:RecursionError:比较中超出最大递归深度 致命 Python 错误:无法从堆栈溢出中恢复。

线程 0x00003700(最近一次调用优先):文件“c:\Users\User.vscode\extensions\ms-python.python-2018.12.1\pythonFiles\lib\python\ptvsd_vendored\pydevd\pydevd.py”,第 176 行_on_run 文件“c:\Users\User.vscode\extensions\ms-python.python-2018.12.1\pythonFiles\lib\python\ptvsd_vendored\pydevd_pydevd_bundle\pydevd_comm.py”,运行文件“C:\Program Files”中的第 203 行(x86)\Python37-32\lib\threading.py",_bootstrap_inner
文件中的第 917 行"C:\Program Files (x86)\Python37-32\lib\threading.py",_bootstrap 文件中的第 885 行"c:\ Users\User.vscode\extensions\ms-python.python-2018.12.1\pythonFiles\lib\python\ptvsd_vendored\pydevd_pydev_bundle\pydev_monkey.py",第 626 行调用

线程 0x000029a4(最近一次调用优先):文件“C:\Program Files (x86)\Python37-32\lib\threading.py”,等待文件“C:\Program Files (x86)\Python37-32\ 中的第 300 行lib\threading.py",等待文件中的第 552 行 "c:\Users\User.vscode\extensions\ms-python.python-2018.12.1\pythonFiles\lib\python\ptvsd_vendored\pydevd\pydevd.py",行_on_run 文件“c:\Users\User.vscode\extensions\ms-python.python-2018.12.1\pythonFiles\lib\python\ptvsd_vendored\pydevd_pydevd_bundle\pydevd_comm.py”中的 154,运行文件“C:\程序文件 (x86)\Python37-32\lib\threading.py",_bootstrap_inner 中的第 917 行
文件“C:\Program Files (x86)\Python37-32\lib\threading.py”,_bootstrap 文件中的第 885 行“c:\Users\User.vscode\extensions\ms-python.python-2018.12.1\pythonFiles \lib\python\ptvsd_vendored\pydevd_pydev_bundle\pydev_monkey.py",第 626 行调用

线程 0x00003c94(最近调用优先):文件“c:\Users\User.vscode\extensions\ms-python.python-2018.12.1\pythonFiles\lib\python\ptvsd\wrapper.py”,recv 文件中的第 383 行“c:\Users\User.vscode\extensions\ms-python.python-2018.12.1\pythonFiles\lib\python\ptvsd_vendored\pydevd_pydevd_bundle\pydevd_comm.py”,_on_run 文件中的第 273 行“c:\Users\User. vscode\extensions\ms-python.python-2018.12.1\pythonFiles\lib\python\ptvsd_vendored\pydevd_pydevd_bundle\pydevd_comm.py”,运行文件“C:\Program Files (x86)\Python37-32\lib\ 中的第 203 行threading.py”,_bootstrap_inner
文件中的第 917 行“C:\Program Files (x86)\Python37-32\lib\threading.py”,_bootstrap 中的第 885 行

线程 0x00001318(最近一次调用优先):文件“c:\Users\User.vscode\extensions\ms-python.python-2018.12.1\pythonFiles\lib\python\ptvsd\ipcjson.py”,_send 文件中的第 112 行“c:\Users\User.vscode\extensions\ms-python.python-2018.12.1\pythonFiles\lib\python\ptvsd\ipcjson.py”,send_event 文件中的第 279 行“c:\Users\User.vscode\ extensions\ms-python.python-2018.12.1\pythonFiles\lib\python\ptvsd\wrapper.py”,on_pydevd_cmd_write_to_console2 文件中的第 2558 行“c:\Users\User.vscode\extensions\ms-python.python-2018.12. 1\pythonFiles\lib\python\ptvsd\wrapper.py",on_pydevd_event 文件中的第 1386 行"c:\Users\User.vscode\extensions\ms-python.python-2018.12.1\pythonFiles\lib\python\ptvsd\ session.py”,handle_pydevd_message 文件中的第 181 行“c:\Users\User.vscode\extensions\ms-python.python-2018.12.1\pythonFiles\lib\python\ptvsd\daemon.py”,_handle_pydevd_message 文件中的第 531 行“c:\Users\User.vscode\extensions\ms-python.python- 2018.12.1\pythonFiles\lib\python\ptvsd\wrapper.py”,发送文件中的第 423 行“c:\Users\User.vscode\extensions\ms-python.python-2018.12.1\pythonFiles\lib\python\ ptvsd_vendored\pydevd_pydevd_bundle\pydevd_comm.py”,发送文件中的第 522 行“c:\Users\User.vscode\extensions\ms-python.python-2018.12.1\pythonFiles\lib\python\ptvsd_vendored\pydevd_pydevd_bundle\pydevd_comm.py” ,_on_run 文件“c:\Users\User.vscode\extensions\ms-python.python-2018.12.1\pythonFiles\lib\python\ptvsd_vendored\pydevd_pydevd_bundle\pydevd_comm.py”中的第 365 行,运行文件“C”中的第 203 行:\Program 文件 (x86)\Python37-32\lib\threading。py",_bootstrap_inner 中的第 917 行
文件“C:\Program Files (x86)\Python37-32\lib\threading.py”,_bootstrap 中的第 885 行

线程 0x00002658(最近一次调用优先):文件“c:\Users\User.vscode\extensions\ms-python.python-2018.12.1\pythonFiles\lib\python\ptvsd\ipcjson.py”,_buffered_read_line_as_ascii 文件中的第 131 行“c:\Users\User.vscode\extensions\ms-python.python-2018.12.1\pythonFiles\lib\python\ptvsd\ipcjson.py”,_wait_for_message 文件中的第 172 行“c:\Users\User.vscode\ extensions\ms-python.python-2018.12.1\pythonFiles\lib\python\ptvsd\ipcjson.py”,process_one_message 文件中的第 318 行“c:\Users\User.vscode\extensions\ms-python.python-2018.12. 1\pythonFiles\lib\python\ptvsd\ipcjson.py”,process_messages 文件中的第 305 行“c:\Users\User.vscode\extensions\ms-python.python-2018.12.1\pythonFiles\lib\python\ptvsd\ wrapper.py”,process_messages 文件中的第 906 行“C:\Program Files (x86)\Python37-32\lib\threading.py",运行文件中的第 865 行 "C:\Program Files (x86)\Python37-32\lib\threading.py",_bootstrap_inner 文件中的第 917 行" C:\Program Files (x86)\Python37-32\lib\threading.py",_bootstrap 中的第 885 行

线程 0x00000df0(最近一次调用优先):文件“C:\Program Files (x86)\Python37-32\lib\threading.py”,等待文件“C:\Program Files (x86)\Python37-32\ 中的第 300 行lib\threading.py",等待文件中的第 552 行 "c:\Users\User.vscode\extensions\ms-python.python-2018.12.1\pythonFiles\lib\python\ptvsd\futures.py",第 106 行run_forever 文件“C:\Program Files (x86)\Python37-32\lib\threading.py”,运行文件“C:\Program Files (x86)\Python37-32\lib\threading.py”中的第 865 行,行_bootstrap_inner 文件“C:\Program Files (x86)\Python37-32\lib\threading.py”中的 917,_bootstrap 中的第 885 行

当前线程 0x00001154(最近一次调用优先):文件“c:\Users\User.vscode\extensions\ms-python.python-2018.12.1\pythonFiles\lib\python\ptvsd_vendored\pydevd_pydevd_bundle\pydevd_trace_dispatch_regular.py”,第 373 行在调用 文件“C:\Program Files (x86)\Python37-32\lib\enum.py”中,值文件“C:\Program Files (x86)\Python37-32\lib\types.py”中的第 607 行,获取文件“C:\Program Files (x86)\Python37-32\lib\re.py”中的第171 行,_compile
文件中的第 274 行“C:\Program Files (x86)\Python37-32\lib\re.py ",编译文件 "c:\Users\User\Desktop\python\test.py" 中的第 234 行,getvalue 文件中的第 42 行 "c:\Users\User\Desktop\python\test.py",getvalue 中的第 48 行文件“c:\Users\User\Desktop\python\test.py",getvalue 中的第 48 行 ...

标签: pythonregexpython-3.x

解决方案


推荐阅读