我正在尝试使用AWS Lambda Python(Python btw中的初学者)启动并运行,但在包含MySQL依赖项方面存在一些问题.我试图按照指示在这里我的Mac上.
对于第3步,我在项目的根目录下执行命令会遇到一些问题
sudo pip install MySQL-python -t /
错误:
例外:回溯(最近一次调用最后一次):文件"/Library/Python/2.7/site-packages/pip-1.5.6-py2.7.egg/pip/basecommand.py",第122行,处于主状态= self .run(options,args)在运行os.path中的文件"/Library/Python/2.7/site-packages/pip-1.5.6-py2.7.egg/pip/commands/install.py",第311行. join(options.target_dir,item)文件"/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py",第292行,移动引发错误,"目标路径"%s '已存在'%real_dst错误:目标路径'/MySQL_python-1.2.5-py2.7.egg-info/MySQL_python-1.2.5-py2.7.egg-info'已存在
我最终编写了以下lambda函数(在我的Mac上运行正常),这是:
import MySQLdb
def lambda_handler(event, context):
# Open database connection
db = MySQLdb.connect(...)
# prepare a cursor object using cursor() method
cursor = db.cursor()
sql = "SELECT * FROM Users"
try:
# Execute the SQL command
cursor.execute(sql)
# Fetch all the rows in a list of lists.
results = cursor.fetchall()
for row in results:
fname = row[0]
lname = row[1]
age = row[2]
sex = row[3]
income = row[4]
# Now print fetched result
print ("lname=%s" %(lname))
except:
print "Error: unable to fecth data"
# disconnect from server
db.close()
我接下来要去/Library/Python/2.7/site-packages并复制我在做sudo pip时下载的MySQLdb文件夹/文件安装MySQL-python(没有-t /)(我是确定我在这里做错了什么),到我的lambda项目,然后将内容与lambda_function.py一起压缩并上传到AWS Lambda.
然后我得到:
无法导入模块'lambda_function':没有名为MySQLdb的模块
感谢任何帮助和建议!
编辑
能够做sudo pip安装MySQL-python -t/pathToProject工作(感谢评论中的帮助)但是现在我在运行lambda函数时得到了这个:
无法导入模块'lambda_function':/ var/task/_mysql.so:无效的ELF标头
我知道,如果我在Linux机器上工作,那么它应该可以正常工作(正如一些人所建议的那样),但我想知道我是否可以从OS X机箱开始工作.