2016-09-15 49 views
1

错误信息 - 无模块名为psycopg2
拉链使用 文件 - https://github.com/jkehler/awslambda-psycopg2
代码片段 -
拉姆达蟒蛇功能 - 无模块名为psycopg2

#!/usr/bin/python 
import psycopg2 
import sys 
import pprint 
import datetime 

def lambda_handler(event, context): 

#Connect to RedShift 
conn_string = "dbname='XXXX' port='5439' user='XXX' password='XXXX' host='XXXXXXXXXXXX'"; 

conn = psycopg2.connect(conn_string); 
cursor = conn.cursor(); 

cursor.execute("begin transaction"); 
cursor.execute("truncate table XXXX"); 
cursor.execute("truncate table XXXX"); 
cursor.execute("truncate table XXXX"); 
cursor.execute("delete from XXXX"); 
cursor.execute("insert into XXXX"); 
cursor.execute("truncate table XXXX"); 
cursor.execute("truncate table XXXX"); 
cursor.execute("truncate table XXXX"); 
cursor.execute("end transaction"); 

conn.commit(); 
conn.close(); 


提取,并在窗口复制psycopg2放入我的AWS Lambda zip包中 - 与我的python文件和网站包一起。
我错过了什么吗?

编辑
重新包装与荏苒亚马逊的Linux文件。同样的错误。

+0

这不是有效的Python代码。另外:如果你想“捆绑”在一起的软件包,你应该**冻结你的应用程序,而不是手动复制文件。 – Bakuriu

+0

@Bakuriu - 请你详细说明我在哪里搞乱了我的python代码?我是新来的python和这个代码在我的Windows机器上执行。 –

+0

也许他指的是缺少缩进,这在Python中很重要。 –

回答

1

psycopg2是一个编译模块。复制Windows版本将不起作用,因为Lambda在Amazon Linux上运行。根据the docs,可以在lambda上运行本机可执行文件和库,但是您需要找到为该平台构建psycopg2并静态链接其所有库或捆绑动态库的方法。除非您熟悉C和Python工具链,或者其他人已经为您完成了这一任务,否则这可能会很有挑战性。

+0

我尝试在亚马逊Linux上压缩文件,但仍然收到相同的错误。从我发布的github链接中,psycopg2已经建好了,我只需将它添加到我的目录中即可。 –