【发布时间】:2017-10-18 21:17:07
【问题描述】:
我正在构建一个python 3.6 AWS Lambda 部署包,但遇到了SQLite 的问题。
在我的代码中,我使用的是nltk,其中一个文件中有一个import sqlite3。
到目前为止采取的步骤:
部署包只有我在根目录中使用的 python 模块。我得到错误:
Unable to import module 'my_program': No module named '_sqlite3'-
将
/home/my_username/anaconda2/envs/py3k/lib/python3.6/lib-dynload/_sqlite3.so中的_sqlite3.so 添加到包根目录中。然后我的错误变为:Unable to import module 'my_program': dynamic module does not define module export function (PyInit__sqlite3) 将来自
sqlite.org的 SQLite 预编译二进制文件添加到我的包的根目录,但我仍然收到第 2 点的错误。
我的设置:Ubuntu 16.04、python3 virtual env
AWS lambda 环境:python3
我该如何解决这个问题?
【问题讨论】:
-
它适用于 AWS Lambda 环境中的 python 2.7。可能是 python3 环境没有支持 sqlite3 的二进制文件。但我的问题仍然存在。如何将二进制文件打包到 aws lambda 中以在我的 python 包中利用它们。
-
我什至尝试将
libsqlite3.so复制到压缩包的lib目录中,但这并没有帮助。有人解决这个问题吗? -
在 AWS 将其添加到 AMI 之前,您很不走运。人们在下面提出了一些不错的解决方案
-
感谢@Darthsidious,但不确定为什么无法将库显式添加到 zip 中。我想我还在学习这些限制。
-
我已经尝试了 sqlite.so 的 zip 中的每个位置
标签: python-3.x amazon-web-services sqlite aws-lambda