2017-06-02 46 views
5

Próbuję użyć asyncpg z AWS Lambda i otrzymał kolejny błąd podczas próby import asyncpgAsyncpg i AWS Lambda

Unable to import module 'handler': No module named asyncpg.protocol.protocol' 

importować zależności python jak w this odpowiedzi i bez środowisku wirtualnym.

upd. Znaleziono this repo z niestandardowym kompilacją psycopg2 co działa dobrze z AWS Lambda, ale dla asyncpg nie znaleziono takiej alternatywy ani instrukcji na temat kompilowania pakietu Lambda-friendly asyncpg.

Odpowiedz

3

Ta biblioteka ma wiązania c, a lambda nie ładnie z nimi współpracuje. Głównym sposobem radzenia sobie z tym problemem jest przesłanie konkretnej biblioteki wraz z powiązaniami prekompilowanymi dla środowisk Linux. Głównym sposobem postępowania jest wykonanie instrukcji pod numerem here i upewnienie się, że biblioteka jest już skompilowana w twoim Linuxie (lub Macu). Z łatwością by się to stało przez samo stworzenie venv i włączenie go, jak sugerują powyższe wytyczne. Możesz znaleźć podobny problem here. Ogólnie rzecz biorąc, jest to powszechne i takie struktury, jak chalice, próbują znaleźć obejścia.