본문 바로가기

Server/Python

[python][error] lambda "Cannot load native module"

반응형

람다에서 파이썬을 활용해서 개발 할 일이 있었는데, 암호화에 cryptodome 라이브러리를 사용하려고 했다.

람다같은 경우엔 라이브러리를 직접 설치할 수 없기 때문에 로컬에 설치 후 zip 파일로 압축해서 람다 함수에 업로드 하는 방식으로 사용해야 하는데, 아무리 설치를 하고 압축하고 업로드를 해도 ASE만 import 를 하려고 하면

Cannot load native module 'Cryptodome.Cipher._raw_ecb'_raw Trying '_ecb.cpython-37m-x86_64-linux-gnu.so'

오류를 띄우면서 읽어오질 못했다.

또 구글링 구글링 한 결과 파이썬은 환경에 따라 패키지 구조나 파일이 조금씩 달라질 수 있는게 문제였다.

람다는 (당연하게도) 리눅스 기반으로 돌아가는데, 윈도우 환경에서 모듈을 설치해서 업로드를 하니 .so 파일이 누락된 것.. 요즘 Windows10에서는 WSL bash를 지원해서(윈도우에 우분투 환경을 제공해서 bash 쉘을 사용할 수 있는? 암튼 그런거다. 자세한건 나중에 보충하기로) 해당 기능 활성화 하고, bash로 우분투에 python설치 후 pip 명령어로 모듈 설치 실행, 압축해서 람다에 업로드 했더니 팽팽 잘 돌아간다.

솔직히 WSL 활성화 하고 하는게 너무 귀찮아서 다른 방법은 없나 한참 찾아봤는데, 리눅스 사용자한테 부탁해서 파일을 받지 않는 이상 뾰족한 수가 없는 듯 하다. 다른 방법 찾을 시간에 실행에 옮겼으면 사실 진즉 끝났을 일인데..

반응형

'Server > Python' 카테고리의 다른 글

[python] python bash commend option  (0) 2021.04.09
[Python] Python 에 대해 주절주절  (0) 2021.03.26
[python][error]Boto3 SignatureDoesNotMatch  (0) 2021.03.25
[python] mysql insert datetime  (0) 2021.03.18