[gelöst] Python: request gibt Fehler zurück

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • [gelöst] Python: request gibt Fehler zurück

      Hi zusammen,
      ich hab einen seltsamen Fehler beim Versuch, eine Webseite mit request zu laden.
      Mach ich das in innerhalb eines Telnet-Fensters, funktioniert es wie gewünscht.
      Spoiler anzeigen
      >>>import requests
      >>> r = requests.get('https://api.github.com')
      >>> r
      <Response [200]>
      Mach ich dasselbe innerhalb eines Plugins, gibts einen Grünen
      Spoiler anzeigen

      File "/usr/lib/python2.7/site-packages/requests/packages/urllib3/connectionpool.py", line 325, in _raise_timeout
      if 'timed out' in str(err) or 'did not complete (read)' in str(err): # Python 2.6
      -------
      TypeError: __str__ returned non-string (type Error)
      Bette ich den Aufruf in ein try-except-Konstrukt ein, erhalte ich den entsprechenden Fehler in der except-Ausgabe:
      Spoiler anzeigen
      Jan 18 22:17:30 dm920 enigma2[27257]: __str__ returned non-string (type Error)

      Irgendwelche Ideen / Lösungen?

      Abgesehen davon irritiert mich die Angabe # Python 2.6 im crashlog etwas - im Telnet-Fenster wird mir beim Aufruf von Python V2.7.11 angegeben. Arbeitet da das Plugin mit einer anderen Version? Falls ja, was muss/kann ich da umstellen?
      Danke!
      Alfred
      Yamp - gepimte Version auch für FHD - aktuelle Version V3.3.2 hier, bitte beachten: FAQ hier

      Wissen ist eins der wenigen Güter, das sich durch Teilen vermehren lässt .... :thumbsup:
    • du kannst in der shell die Version angeben, mit der das script gestartet werden soll

      python2.6 script.py

      ich glaube es sind zwei verschiendene Versionen installiert - 2.6 und 2.7
      einfach pyhton[TAB][TAB] in der shell eingeben, dann sollten die installieren python binaries angezeigt werden

      zum python code kann ich mangels Programmierkenntnisse nicht viel sagen
      Gruß Fred

      Die Dreambox ist tot, es lebe die Dreambox

      ¯\_(ツ)_/¯

      Quellcode

      1. root@dm920:~$ mount | grep "/ "
      2. /dev/mmcblk1p1 on / type ext4 (rw,relatime,data=ordered)
      3. root@dm920:~$
    • Hi Fred,
      danke dir schon wieder - und schon wieder so schnell :D

      python2.6 script.py funzt leider nicht....
      Spoiler anzeigen
      $ python2.6 script.py
      -bash: python2.6: command not found
      Ausserdem wär das ja eh nur interessant, um zu sehen, obs mit 2.6 den gleichen Fehler gibt wie beim Aufruf innerhalb des Plugins.
      Es sieht ja ausserdem eigentlich so aus, als ob das Plugin V2.7 nutzt und das 2.6 nur ein alter Kommentar ist, denn im Crashlog steht ja auch
      Spoiler anzeigen
      "/usr/lib/python2.7/site-package

      Trotzdem danke, einen Versuch wars wert.
      Vielleicht gibts ja noch mehr Ideen....
      Yamp - gepimte Version auch für FHD - aktuelle Version V3.3.2 hier, bitte beachten: FAQ hier

      Wissen ist eins der wenigen Güter, das sich durch Teilen vermehren lässt .... :thumbsup:
    • Ich habe dunkel in Erinnerung, dass mind. 2 Versionen installiert sind - oder vielleicht waren

      was spuckt den

      pyhton[TAB][TAB]


      in der shell, also in z.B. einer Telnet session aus? Ich habe gerade keinen Zugriff auf meine Boxen
      Gruß Fred

      Die Dreambox ist tot, es lebe die Dreambox

      ¯\_(ツ)_/¯

      Quellcode

      1. root@dm920:~$ mount | grep "/ "
      2. /dev/mmcblk1p1 on / type ext4 (rw,relatime,data=ordered)
      3. root@dm920:~$
    • Hatte ich vorher schon getestet, aber vergessen anzuhängen...

      Aber egal, was ich eintippe: python, python2, python2.7, es wird mir immer angezeigt "Python 2.7.11"
      Bilder
      • python.JPG

        18,86 kB, 1.066×76, 37 mal angesehen
      • python2.JPG

        22 kB, 658×102, 41 mal angesehen
      Yamp - gepimte Version auch für FHD - aktuelle Version V3.3.2 hier, bitte beachten: FAQ hier

      Wissen ist eins der wenigen Güter, das sich durch Teilen vermehren lässt .... :thumbsup:

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von AlfredENeumann ()

    • ok, dann ist nur noch python2.7 auf der box und

      python bzw. python2 sind vermuntlich nur symlinks auf python2.7

      müsste man so sehen können

      ls -al /usr/bin/python*


      wg. dem Error: ich vermute, dass hier die libraries nicht geladen werden
      ein einfaches python script lässt über Enigma2 nicht einfach so starten
      ich vermute, dass du noch die entsprechenden Engma2 componenten / module importieren musst, damit das funktioniert

      da endet mein python 1/100stel Wissen aber schon

      der vollständige code des plugins hilft da sicher weiter, eine leere __init__.py hast du erstellt?
      Gruß Fred

      Die Dreambox ist tot, es lebe die Dreambox

      ¯\_(ツ)_/¯

      Quellcode

      1. root@dm920:~$ mount | grep "/ "
      2. /dev/mmcblk1p1 on / type ext4 (rw,relatime,data=ordered)
      3. root@dm920:~$
    • mit den symlinks hast du wohl recht.
      Und doch, die libraries sind geladen - sonst würde er ja meckern, dass eine Funktion nicht geladen werden kann. Er meckert aber den Rückgabewert der Funktion an!
      Bei Bedarf kann ich aber gern auch noch das Plugin anhängen - steht eh nix grossartiges drin, weil es nur mein "Test-Plugin" ist, mit dem ich bei Bedarf irgendwelche neue Dinge teste. In dem Fall eben nur das.
      Bilder
      • pythonls.JPG

        45,53 kB, 794×165, 44 mal angesehen
      Yamp - gepimte Version auch für FHD - aktuelle Version V3.3.2 hier, bitte beachten: FAQ hier

      Wissen ist eins der wenigen Güter, das sich durch Teilen vermehren lässt .... :thumbsup:
    • Quellcode

      1. import requests
      2. resp = requests.get('https://api.github.com')
      3. if resp.status_code == 200:
      4. resp_string = resp.text
      if resp.status_code muss du nicht verwenden, es reicht auch das resp.text dann erhaltest du einen String, den du dann weiter verarbeiten kannst.
      So nutze ich es auch im Emby Plugin.

      Vielleicht ist es das, was du im Plugin nutzen kannst.
      LG Murxer
    • Hi @murxer,
      auch dir danke ich. Nur - es hilft mir leider nichts, denn bis zu einer Auswertung komme ich ja gar nicht. Wie oben schon geschrieben, bekomme ich schon bei Aufruf von requests einen Grünen. Und wenn ichs in ein try-except-Konstrukt einbaue, erhalte ich
      Jan 18 22:17:30 dm920 enigma2[27257]: __str__ returned non-string (type Error)

      Und, auch wie gesagt, in der shell funktioniert alles....
      Yamp - gepimte Version auch für FHD - aktuelle Version V3.3.2 hier, bitte beachten: FAQ hier

      Wissen ist eins der wenigen Güter, das sich durch Teilen vermehren lässt .... :thumbsup:
    • unglaublich, aber wahr: so gehts bei mir auch :freu:
      Rein aus Neugierde: Hast du jetzt auch noch eine Erklärung, warums ohne die zusätzlichen Parameter zwar in der shell funzt, aber nicht im Plugin?
      Danke dir auf jeden Fall sackrisch !!! :thumbsup: :saufen:

      Und (auch wenns hier nicht hingehört): noch eine Idee, wie ich das auch auf meinen 7020HD schaffe (OE2.0)? Da erhalte ich als Antwort:
      Spoiler anzeigen

      File "<stdin>", line 1, in <module>
      File "/usr/lib/python2.7/site-packages/requests/api.py", line 70, in get
      return request('get', url, params=params, **kwargs)
      File "/usr/lib/python2.7/site-packages/requests/api.py", line 56, in request
      return session.request(method=method, url=url, **kwargs)
      File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 475, in request
      resp = self.send(prep, **send_kwargs)
      File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 596, in send
      r = adapter.send(request, **kwargs)
      File "/usr/lib/python2.7/site-packages/requests/adapters.py", line 497, in send
      raise SSLError(e, request=request)
      requests.exceptions.SSLError: Can't connect to HTTPS URL because the SSL module is not available.
      Yamp - gepimte Version auch für FHD - aktuelle Version V3.3.2 hier, bitte beachten: FAQ hier

      Wissen ist eins der wenigen Güter, das sich durch Teilen vermehren lässt .... :thumbsup:
    • AlfredENeumann schrieb:

      Hast du jetzt auch noch eine Erklärung, warums ohne die zusätzlichen Parameter zwar in der shell funzt, aber nicht im Plugin?
      nein, leider nicht. ich habe die parameter auch irgendwo gesehen und ausprobiert.


      AlfredENeumann schrieb:

      wie ich das auch auf meinen 7020HD schaffe (OE2.0)?
      aus der huefte geschossen: vielleicht hilft ein "apt install libssl".
    • Klugscheissermodus ein ;) : mit apt unter OE2.0 schonmal gar nicht. ;)
      Und ja, libssl und auch alles sonstigen verfügbaren Module mit ssl (sind unter OE2.0 allerdings nicht viele) sind installiert.
      Yamp - gepimte Version auch für FHD - aktuelle Version V3.3.2 hier, bitte beachten: FAQ hier

      Wissen ist eins der wenigen Güter, das sich durch Teilen vermehren lässt .... :thumbsup:
    • Versuch das mal wenn du das im code hinzufügst.

      Quellcode

      1. from twisted.internet import ssl
      2. try:
      3. _create_unverified_https_context = ssl._create_unverified_context
      4. except AttributeError:
      5. # Legacy Python that doesn't verify HTTPS certificates by default
      6. pass
      7. else:
      8. # Handle target environment that doesn't support HTTPS verification
      9. ssl._create_default_https_context = _create_unverified_https_context
      Sollte das beheben bei OE 2.0
      LG Murxer
    • Auch dir wieder danke, haut aber nicht hin. Ergebnis im plugin: genau wie vorher. Ergebnis in der shell:
      Spoiler anzeigen

      ssl._create_default_https_context = _create_unverified_https_context
      Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      NameError: name '_create_unverified_https_context' is not defined
      import ssl wird ohne Problem ausgeführt.
      Noch eine Idee?
      Yamp - gepimte Version auch für FHD - aktuelle Version V3.3.2 hier, bitte beachten: FAQ hier

      Wissen ist eins der wenigen Güter, das sich durch Teilen vermehren lässt .... :thumbsup:
    • kein Thema - steht eh nix drin, ist nur und ausschliesslich der Test....

      Update: Jetzt hab ichs nochmal auf meiner 2. 7020 versucht; geht zwar auch nicht, aber die Meldung ist anders (sh. screenshot). Die Meldung in der shell ist aber gleich:
      Spoiler anzeigen

      >>> ssl._create_default_https_context = _create_unverified_https_context
      Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      NameError: name '_create_unverified_https_context' is not defined
      Bilder
      • RequestBox2.JPG

        19,94 kB, 709×112, 42 mal angesehen
      Dateien
      • TestPlugin.zip

        (187,59 kB, 61 mal heruntergeladen, zuletzt: )
      Yamp - gepimte Version auch für FHD - aktuelle Version V3.3.2 hier, bitte beachten: FAQ hier

      Wissen ist eins der wenigen Güter, das sich durch Teilen vermehren lässt .... :thumbsup:

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von AlfredENeumann ()