sqlite3 error on AWS lambda with Python 3

后端 未结 7 1145
终归单人心
终归单人心 2021-02-01 05:07

I am building a python 3.6 AWS Lambda deploy package and was facing an issue with SQLite.

In my code I am using nltk which has a

7条回答
  •  旧巷少年郎
    2021-02-01 05:39

    You need the sqlite3.so file (as others have pointed out), but the most robust way to get it is to pull from the (semi-official?) AWS Lambda docker images available in lambci/lambda. For example, for Python 3.7, here's an easy way to do this:

    First, let's grab the sqlite3.so (library file) from the docker image:

    mkdir lib
    docker run -v $PWD:$PWD lambci/lambda:build-python3.7 bash -c "cp sqlite3.cpython*.so $PWD/lib/"
    

    Next, we'll make a zipped executable with our requirements and code:

    pip install -t output requirements.txt
    pip install . -t output
    zip -r output.zip output
    

    Finally, we add the library file to our image:

    cd lib && zip -r ../output.zip sqlite3.cpython*.so
    

    If you want to use AWS SAM build/packaging, instead copy it into the top-level of the lambda environment package (i.e., next to your other python files).

提交回复
热议问题