【问题标题】:Pyodbc.drivers() returning an empty list on MacPyodbc.drivers() 在 Mac 上返回一个空列表
【发布时间】:2021-03-16 17:03:45
【问题描述】:

我正在尝试使用 sqlalchemy 访问 SQL 数据库,但我似乎没有安装任何 ODBC 驱动程序。我已按照 Microsoft 的说明通过 Homebrew 安装 ODBC 驱动程序:

https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/install-microsoft-odbc-driver-sql-server-macos?view=sql-server-2017

但仍然出现短缺。当我执行 pip install pyodbc 时,它返回它已安装。但是,当我搜索驱动程序时,我只得到一个空列表:

In[1]: import pyodbc
In[2]: pyodbc.drivers()
Out[2]: []

提前致谢。

【问题讨论】:

  • 你能在命令提示符下运行odbcinst -j 吗?如果是这样,请检查列为 DRIVERS... 位置的 odbcinst.ini 文件的内容。
  • 驱动程序位置是:/etc/odbcinst.ini;用户数据源..:/Users/MYUSERNAME/.odbc.ini。当我转到文件路径时,没有文件存在。如果我尝试在命令提示符下打开它,我会收到一条错误消息,指出没有程序知道如何打开该文件。
  • 所以如果你尝试cat /etc/odbcinst.ini 你会得到“没有这样的文件或目录”?

标签: python odbc homebrew driver pyodbc


【解决方案1】:

一些用户在安装 ODBC 驱动程序后尝试连接时遇到问题,并收到如下错误:“[01000] [unixODBC][Driver Manager]Can't open lib 'ODBC Driver 17 for SQL Server': file not找到 (0) (SQLDriverConnect)”。可能是 unixODBC 未正确配置以查找已注册的驱动程序。在这些情况下,创建几个符号链接可以解决问题。

sudo ln -s /usr/local/etc/odbcinst.ini /etc/odbcinst.ini
sudo ln -s /usr/local/etc/odbc.ini /etc/odbc.ini

以上对我有用。 ref

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多