当前位置: 首页 > 面试题库 >

在Python中将MySQL与AWS Lambda一起使用时出现问题

璩浩广
2023-03-14
问题内容

我正在尝试使用AWS Lambda
Python(Python初学者)启动并运行,但是在包含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,处于主要状态=自我.run(options,args)文件“
/Library/Python/2.7/site-
packages/pip-1.5.6-py2.7.egg/pip/commands/install.py”,第311行,位于运行os.path中。
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安装MySQL-
html" target="_blank">python时下载的MySQLdb文件夹/文件(不带-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机器上使它工作。


问题答案:

对于像Lambda这样的用例,使用像PyMySQL这样的纯python实现会更快乐。

这是遵循Python数据库API规范的MySQLdb的替代品。对于大多数事件,例如触发的Lambda事件,速度将一样快。

我已经在生产中使用了很多,效果很好。



 类似资料:
  • 问题内容: 我正在尝试在Swift中使用彩色图案。Apple在Quartz 2D编程指南的“ 绘画彩色图案”部分中提供了一个不错的Objective- C示例。但是,从Objective-C转换所有语法并非易事。另外,我想在绘图回调中使用该参数,并且没有这样做的示例。 这是我的第一次尝试: 显然,这需要一个合适的参数值,我需要将其作为参数传递给初始化程序。 完成此操作的正确语法是什么? 问题答案:

  • 我有一个通过http承载图像的地理服务器。我的客户端站点使用https。我一直在使用openlayers,一切都很好。现在我正试图转移到cesiumjs,我在IE或Edge中没有得到任何图像(不幸的是,我无法测试其他浏览器)。如果使用bing地图,我可以在我的客户机中获取图像,因此客户机代码在其他情况下是可用的。在浏览器控制台中,我看到: SEC7117:网络请求超文本传输协议://[myserv

  • 问题内容: 当我需要使用LIKE%..%语句中的字段中的值时,我陷入了一个微妙的SQL问题。 例子: 这只是我脑海中的一个例子,显示了我需要做的事情(我知道这是行不通的)。我需要在LIKE%..%中使用t2.Name的值 我想这是微不足道的;) 问题答案: 使用:

  • 我有一个SpringBoot应用程序,它运行默认的嵌入式tomcat(带有TomcatJDBC连接池)。这是生产和运行良好。我使用mysql作为我的数据库。 我现在正在我的测试环境中做一些压力测试,并试图看看如果我从嵌入式Tomcat切换到嵌入式Undertow,我是否会得到任何明显的好处。人们声称通过这样做可以显著提高吞吐量,这是由于潜在请求处理的异步性质。 我知道如何排除tomcat并将und

  • 在嵌入式TomEE容器中运行Arquillian测试时,我得到了以下错误

  • 问题内容: 我正在尝试将React-redux与Typescript一起使用,当我尝试使用connect()和mapStateToProps注入道具时遇到类型错误。 我的组件如下所示: 商店看起来像这样 最后,我将类型定义为: 当我尝试编译代码时,出现以下错误: 有趣的是,即使代码抛出类型错误,它仍然可以正常工作。同样,将组件的prop接口更改为any也可以解决该问题。似乎类型系统无法理解这两个映