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

时间:2018-12-30 06:43:35

标签: python regex python-3.x

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

  

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

我不知道如何解决此问题。 我研究过Google对我没有任何帮助。


    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_())
  

Blockquote

结果:

  

回溯(最近通话最近):文件   “ 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”,   _on_run文件中的第176行   “ 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”,行885   在_bootstrap文件中   “ 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“,等待文件中的第300行   “ C:\ Program Files(x86)\ Python37-32 \ 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文件中的第154行   “ 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”,行885   在_bootstrap文件中   “ 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中的第203行”   (x86)\ Python37-32 \ lib \ threading.py“,_ bootstrap_inner中的第917行
  文件“ C:\ Program Files(x86)\ Python37-32 \ lib \ threading.py”,行885   在_bootstrap

中      

线程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文件中的第365行   “ 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”,行885   在_bootstrap

中      

线程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文件“ C:\ Program Files中的第906行”   (x86)\ Python37-32 \ lib \ threading.py“,运行文件中的第865行   “ C:\ Program Files(x86)\ Python37-32 \ lib \ threading.py”,第917行   _bootstrap_inner文件“ C:\ Program Files(x86)\ Python37-32 \ lib \ threading.py”,_ bootstrap中的第885行

     

线程0x00000df0(最近一次调用在前):文件“ C:\ Program Files   (x86)\ Python37-32 \ lib \ threading.py“,等待文件中的第300行   “ C:\ Program Files(x86)\ Python37-32 \ lib \ threading.py”,第552行   等待文件   “ c:\ Users \ User.vscode \ extensions \ ms-python.python-2018.12.1 \ pythonFiles \ lib \ python \ ptvsd \ futures.py”,   run_forever文件“ C:\ Program Files中的第106行   (x86)\ Python37-32 \ lib \ threading.py“,运行文件中的第865行   “ C:\ Program Files(x86)\ Python37-32 \ lib \ threading.py”,第917行   _bootstrap_inner文件“ C:\ Program Files(x86)\ Python37-32 \ lib \ threading.py”,_ 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中的第607行   文件(x86)\ Python37-32 \ lib \ types.py”,获取文件中的第171行   _compile中的“ C:\ Program Files(x86)\ Python37-32 \ lib \ re.py”行274
  文件“ C:\ Program Files(x86)\ Python37-32 \ lib \ re.py”,位于第234行   编译文件“ c:\ Users \ User \ Desktop \ python \ test.py”,位于第42行   getvalue文件“ c:\ Users \ User \ Desktop \ python \ test.py”,第48行   getvalue文件“ c:\ Users \ User \ Desktop \ python \ test.py”,第48行   getvalue ...

0 个答案:

没有答案