OSError: Could not locate nacl lib

Stelle deine Frage öffentlich an die Threema-Forum-Community - über 4.800 Mitglieder helfen dir weiter. > Frage stellen <
  • Servus an das Forum,

    Ich wende mich an Sie, weil ich ein Problem bei der Nutzung der threema.gateway auf Servern habe.

    Beim Einsatz der Bibliothek in serverlosen Python-Funktionen von Vercel (ähnlich zu AWS Lambda) erhalte ich die folgende Fehlermeldung:

    --------
    [ERROR] OSError: Could not locate nacl lib, searched for libsodium.so, libsodium.so.23, libsodium.so.18, libsodium.so.17, libsodium.so.13, libsodium.so.10, libsodium.so.5, libsodium.so.4,
    Traceback (most recent call last):
    File "/var/task/api/index.py", line 1, in <module>
    from threema.gateway import Connection, GatewayError
    File "/var/task/threema/gateway/__init__.py", line 26, in <module>
    from . import _gateway
    File "/var/task/threema/gateway/_gateway.py", line 4, in <module>
    import libnacl.encode
    File "/var/task/libnacl/__init__.py", line 87, in <module>
    nacl = _get_nacl()
    File "/var/task/libnacl/__init__.py", line 83, in _get_nacl
    raise OSError(msg)INIT_REPORT Init Duration: 830.34 ms Phase: invoke Status: error Error Type: Runtime.Unknown
    ------

    So wie ich die Situation verstehe: Die Importanweisung von threema.gateway löst das Laden des libnacl-Moduls aus. Das libnacl-Modul versucht, die gemeinsam genutzten Bibliotheksdateien für libsodium zu finden. Es sucht nach verschiedenen Versionen der Bibliothek, kann aber keine davon finden. Die Initialisierungsfunktion _get_nacl() von libnacl versucht, die gemeinsam genutzte Bibliothek zu finden und zu laden, und wenn dies fehlschlägt, wird ein OSError mit einer detaillierten Meldung ausgegeben.

    Da ich keine Möglichkeit habe, die Serverkonfiguration oder Einstellungen auf Vercel zu ändern, möchte ich Sie um Unterstützung bitten.

    Gibt es eine bekannte Lösung oder eine Methode, um diese Abhängigkeit in meiner Umgebung korrekt zu integrieren? Ich danke Ihnen im Voraus für Ihre Hilfe und Unterstützung.

    Mit freundlichen Grüssen

  • Obwohl es hier über 4.800 Mitglieder gibt, ist die Hilfe nicht sehr schnell ^^ Glücklicherweise ist das Problem gelöst. Das Problem, mit dem ich konfrontiert war, entsteht, weil die serverlose Umgebung keinen direkten Zugriff auf Systembibliotheken wie libsodium bietet. Während libsodium in requirements.txt aufgenommen werden kann, übernimmt der Server nicht die Installation oder Verknüpfung der von threema-gateway während der Bereitstellung benötigten Systembibliotheken. Ich habe das Problem mit der Libsodium-Abhängigkeit durch die Verwendung von Wrappern gelöst.

  • Obwohl es hier über 4.800 Mitglieder gibt, ist die Hilfe nicht sehr schnell

    Hallo :)

    das hat damit bestimmt nichts zu tun. Von den 4.800 Mitgliedern dürften die allerwenigsten Threema Gateway nutzen. Ich tue das selbst nicht und kann deshalb nichts zu diesem Thema beitragen.

    Glücklicherweise ist das Problem gelöst.

    Prima, das freut mich. Übrigens weißt Du ja sicherlich, dass Du Dich auch jederzeit an den offiziellen Threema Support wenden kannst.

    Kontakt – Threema
    Nehmen Sie mit Threema Kontakt auf. Hier finden Sie alle Kontaktinformationen unabhängig davon, welches Anliegen Sie haben.
    threema.ch

    Hier ist ein rein privates Forum, in dem Threema Anwender in ihrer Freizeit versuchen, anderen zu helfen.

    Gruß Ingo