我正在使用 Python 3.11 创建一个 Azure 函数,以通过
pyodbc
库将数据写入 Azure SQL 数据库。但是,我遇到了找不到 ODBC 驱动程序 18 的问题。我收到的错误消息是:
错误:('01000',“[01000] [unixODBC][驱动程序管理器]无法打开 lib 'ODBC Driver 18 for SQL Server':找不到文件 (0) (SQLDriverConnect)”)
我尝试过以下方法:
环境:
pyodbc
文件中有 azure-functions
和 requirements.txt
有人遇到过类似的问题或者可以提供有关在此环境中为 Azure SQL 设置 ODBC 驱动程序的指导吗?
谢谢!
我创建了一个基于Linux的消费计划python函数,版本为
3.11
。
我在
ODBC Driver 17 for SQL Server
中遇到了 python 3.11
的错误,但是 ODBC Driver 18 for SQL Server
对我来说工作得很好。
Python 3.11 不支持
,3.10 不支持ODBC Driver 17
。确保版本正确且驱动程序版本正确。ODBC Driver 18
如果在3.11中仍然不起作用,我建议尝试使用3.12
下面给出的功能代码对我有用:
import azure.functions as func
import logging
import pyodbc
app = func.FunctionApp()
@app.route(route="http_trigger", auth_level=func.AuthLevel.ANONYMOUS)
def http_trigger(req: func.HttpRequest) -> func.HttpResponse:
try:
Connectionstring = "Driver={ODBC Driver 18 for SQL Server};Server=tcp:sqlserver31aug.database.windows.net,1433;Database=sqldb31aug;Uid={your username};Pwd={your password};Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30;"
with pyodbc.connect(Connectionstring) as conn:
with conn.cursor() as cursor:
cursor.execute("SELECT SYSTEM_USER;")
result = cursor.fetchone()
logging.info('Python HTTP trigger function processed a request.')
logging.info("SYSTEM_USER: %s", result)
return func.HttpResponse(f"SYSTEM_USER: {result}", status_code=200)
except pyodbc.Error as e:
logging.error(f"SQL query failed: {e}")
return func.HttpResponse(f"SQL query failed: {e}")
OUPUT
: