【问题标题】:Creating AWS Lambda function using python pyodbc library throw an error "module 'pyodbc' has no attribute ' connect'使用 python pyodbc 库创建 AWS Lambda 函数会引发错误“模块‘pyodbc’没有属性‘连接’
【发布时间】:2021-09-02 15:49:48
【问题描述】:

我正在尝试创建一个简单的 Lambda 函数来查询 AWS RDS SQL 服务器的 msdb 以监控失败的作业。我从https://github.com/Miserlou/lambda-packages/tree/master/lambda_packages/pyodbc下载了python模块pyodbc 将文件类型从 .tar.gz 更改为 zip 并提取两个文件 libodbc.so.2 和 pyodbc.so 然后我将这两个文件放在一个结构如下的 zip 文件夹中 pythonjob.zip\python\lib\python3.7\site-packages\pyodbcpyodbc 存在 libodbc.so.2pyodbc.so 然后我在 Lambda 层上传了pythonjob.zip 文件并测试了我的脚本

import pyodbc
print(dir(pyodbc))

#ConnectionValues

endpoint = 'myservername.us-east-2.rds.amazonaws.com'
username = 'username'
password = 'password'
database_name = 'msdb'
conn = pyodbc.Connect( server= endpoint, user= username, password=password, database= database_name)

但是我收到错误 [ERROR] AttributeError: module 'pyodbc' has no attribute 'Connect' 并且 print(dir(pyodbc)) 打印 ['__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__']

我不知道现在该做什么。感谢您的帮助。谢谢!

【问题讨论】:

  • 你不应该使用“connect”属性而不是“Connect”(大写C)吗?
  • @Aditya 也显示相同的错误"errorMessage": "module 'pyodbc' has no attribute 'connect'"

标签: python sql-server aws-lambda pyodbc


【解决方案1】:

@Esu 请把连接语句改成如下:

conn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER='+endpoint+';DATABASE='+database_name+';UID='+username+';PWD='+ password)

另外,您使用的 lambda 层不包含所需的包。您可以从以下链接下载文件,将 zip 上传到 lambda 层并再次尝试连接。

https://github.com/alexanderluiscampino/lambda-layers/blob/master/pyodbc-9ef8961d-ce5b-4603-b397-03c9a6316eca.zip

希望它有效。

【讨论】:

  • 我下载了 zip 文件,将其上传到图层并按照您的建议更改了连接,瞧!这行得通。非常感谢@Aditya
猜你喜欢
  • 2021-08-04
  • 1970-01-01
  • 1970-01-01
  • 2017-09-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多