2017-11-17 4 views
0

Ich habe plötzlich einen Fehler in einem Skript, das ich verwendet habe, und es ergibt keinen Sinn. Ich bekomme es, wenn ich eine Funktion aus einem Paket rufe, das ich geschrieben habe (es sagt, es ist ein rekursiver Fehler), aber ich kann die gleiche Funktion mit den gleichen Argumenten im Paket main selbst in Ordnung. Es sind keine Schleifen beteiligt, und es gibt keine Rekursion.Plötzlicher rekursiver Fehler in nicht rekursivem Skript

Ich bekomme jetzt den Fehler auch mit anderen Paketen.

import play_scraper 
print(play_scraper.details("com.whatsapp")) 

Dies ergibt:

Traceback (most recent call last): 
    File "C:/Users/wd/OneDrive - UGent/Python/test/test.py", line 3, in <module> 
    print(play_scraper.details("com.whatsapp")) 
    File "C:\Users\wd\AppData\Roaming\Python\Python36\site-packages\play_scraper\api.py", line 22, in details 
    return s.details(app_id) 
    File "C:\Users\wd\AppData\Roaming\Python\Python36\site-packages\play_scraper\scraper.py", line 292, in details 
    response = send_request('GET', url) 
    File "C:\Users\wd\AppData\Roaming\Python\Python36\site-packages\play_scraper\utils.py", line 120, in send_request 
    verify=verify) 
    File "C:\Users\wd\AppData\Roaming\Python\Python36\site-packages\requests\api.py", line 58, in request 
    return session.request(method=method, url=url, **kwargs) 
    File "C:\Users\wd\AppData\Roaming\Python\Python36\site-packages\requests\sessions.py", line 502, in request 
    resp = self.send(prep, **send_kwargs) 
    File "C:\Users\wd\AppData\Roaming\Python\Python36\site-packages\requests\sessions.py", line 612, in send 
    r = adapter.send(request, **kwargs) 
    File "C:\Users\wd\AppData\Roaming\Python\Python36\site-packages\requests\adapters.py", line 440, in send 
    timeout=timeout 
    File "C:\Users\wd\AppData\Roaming\Python\Python36\site-packages\urllib3\connectionpool.py", line 600, in urlopen 
    chunked=chunked) 
    File "C:\Users\wd\AppData\Roaming\Python\Python36\site-packages\urllib3\connectionpool.py", line 345, in _make_request 
    self._validate_conn(conn) 
    File "C:\Users\wd\AppData\Roaming\Python\Python36\site-packages\urllib3\connectionpool.py", line 844, in _validate_conn 
    conn.connect() 
    File "C:\Users\wd\AppData\Roaming\Python\Python36\site-packages\urllib3\connection.py", line 314, in connect 
    cert_reqs=resolve_cert_reqs(self.cert_reqs), 
    File "C:\Users\wd\AppData\Roaming\Python\Python36\site-packages\urllib3\util\ssl_.py", line 265, in create_urllib3_context 
    context.options |= options 
    File "C:\Python36-32\lib\ssl.py", line 459, in options 
    super(SSLContext, SSLContext).options.__set__(self, value) 
    File "C:\Python36-32\lib\ssl.py", line 459, in options 
    super(SSLContext, SSLContext).options.__set__(self, value) 
    File "C:\Python36-32\lib\ssl.py", line 459, in options 
    super(SSLContext, SSLContext).options.__set__(self, value) 
    [Previous line repeated 323 more times] 
RecursionError: maximum recursion depth exceeded while calling a Python object 

Offensichtlich tritt jede Art von Rekursion nicht in meinem zweizeilige Skript. Meine beste Vermutung: Ich habe während der Installation eines nicht identifizierten Pakets in meinem 3.6.1-Interpreter etwas geändert, da ich diesen Fehler in 3.5 nicht erhalte. Könnte eine der play_scraper Anforderungen, die ich installiert habe, die

sind
beautifulsoup4 (>=4.4.1) 
grequests (>=0.3.0) 
lxml (>=3.6.0) 
requests (>=2.9.1) 

Dies ist alles ziemlich Vermutungen obwohl. Jeder hat eine Ahnung was los ist?

Antwort

0

Ich habe gerade den gleichen Fehler mit Anfragen aus einer Gunicorn Gevent-Umgebung. https://github.com/gevent/gevent/issues/903

Nach dieser Ausgabe Upgrade Ihrer GEVENT Version den Trick tun sollte, obwohl ich den gleichen Fehler mit Version 1.2.2 finden Sie unter:

Dies wird wahrscheinlich zu sehen.