我正在使用 macOS BigSur,我想使用 python 连接到 azure sql 数据库。
我遵循了 Microsoft 文档:
https://docs.microsoft.com/en-us/python/api/overview/azure/sql?view=azure-python
按照本文档设置所有配置并安装 Mac OS 的所有要求。
但是当我运行我的python脚本时,我得到了这个错误:
cnxn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)
pyodbc.Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'ODBC Driver 17 for SQL Server' : file not found (0) (SQLDriverConnect)")
我安装 mssql-tools 和 unixodbc
如果我运行命令odbcinst -j
我得到这个输出:
unixODBC 2.3.9
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /Users/<my-user>/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
有人知道这个错误吗?如果您需要更多信息,请问我。太感谢了
编辑:按照文档,微软建议从 odic.ini 和 odbcinst.ini 中创建一个 sim 链接。我运行代码来创建这些符号链接,但我意识到如果我尝试打开这些文件,它们是空的,如果我尝试转到文件夹并手动打开它们而不是使用终端,我会得到它可以的错误' t 完成,因为源不存在。有没有人发生过这个错误?
最新更新:我安装了 FreeTDS 并使用以下配置更新了我的 .odbc.ini:
[my_server]
Description = my_server
TDS_Version = 7.4
Driver = /usr/local/lib/libtdsodbc.so
Server = YOUR.SERVERNAME.HERE.com
Port = 1433
当我运行我的 python 脚本连接到数据库时,我得到以下 Traceback:
Traceback (most recent call last):
File "database.py", line 11, in <module>
cnxn = pyodbc.connect('dsn=my_server;'
pyodbc.Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib '/usr/local/lib/libtdsodbc.so' : file not found (0) (SQLDriverConnect)")
事实上libtdsodbc.so
,那个位置没有。在另一个主题中,他们建议使用标志安装 freeTDS,--with-unixodbc
但是当我尝试这样做时,我收到命令不存在的错误