Python maximum recursion depth exceeded while calling a Python object (gevent的SSL無限遞歸錯誤)的問題解決


今天給以前寫的python腳本用pyinstaller打包的時候,居然報錯了

  1. ...
  2.  
    File "d:\programdata\anaconda3\lib\ast.py", line 253, in visit
  3.  
    return visitor(node)
  4.  
    File "d:\programdata\anaconda3\lib\ast.py", line 261, in generic_visit
  5.  
    self.visit(item)
  6.  
    File "d:\programdata\anaconda3\lib\ast.py", line 253, in visit
  7.  
    return visitor(node)
  8.  
    File "d:\programdata\anaconda3\lib\ast.py", line 263, in generic_visit
  9.  
    self.visit(value)
  10.  
    File "d:\programdata\anaconda3\lib\ast.py", line 253, in visit
  11.  
    return visitor(node)
  12.  
    RecursionError: maximum recursion depth exceeded

    看上去似乎是某個庫自己遞歸遍歷玩的太嗨了,超過了python的棧高度限制

    搜索了一番,很快找到了解決辦法: https://stackoverflow.com/questions/38977929/pyinstaller-creating-exe-runtimeerror-maximum-recursion-depth-exceeded-while-ca

     

    在此總結下解決步驟:

    1)pyinstaller -F xxx.py 

    這一步肯定會報上述錯誤導致失敗,但是會產生一個xxx.spec文件

    2)在xxx.spec文件中增加兩行(添加在原文件第二行):

    1. import sys
    2.  
      sys.setrecursionlimit( 5000)

    3)pyinstaller xxx.spec

    打包成功。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM