0

我使用 python 3.6 在 Amazon Linux docker 映像中成功测试了 pandas、numpy 和 sqlalchemy。我能够使用python 3.6 中create_engine的模块导入、使用和连接到虚拟环境中的数据库。sqlalchemy

create_engine然后我导出了所有依赖项并构建了一个 python 部署包以在 AWS Lambda 中运行它,但由于某种原因,我在 lambda 中不断收到错误消息。

模块“sqlalchemy”没有属性“create_engine”:AttributeError

这是我的代码:

import pandas as pd
import numpy as np
import sqlalchemy
from datetime import datetime, timedelta

def lambda_handler(event, context):

    engine = sqlalchemy.create_engine("DB_URI")

    return "Hello world!"

但是,如果我简单地注释掉我调用的行create_engine,我会得到我的“Hello world!” 回复。

create_engine当它在相同的 docker 环境中运行良好时,我不明白为什么不能在这个环境中工作。有任何想法吗?

4

1 回答 1

1

我想到了。我在压缩文件时遇到了一个新手错误,并且没有使用该-r选项,这意味着只有我的 python 模块文件夹的顶层被压缩。这解释了为什么我没有收到导入错误,但没有任何实际方法有效。

重申一下,解决方案是在-r我的操作中添加选项以zip递归添加所有文件:

zip -r package.zip *

于 2017-10-01T15:24:47.037 回答