【问题标题】:Connection issues on OSX via pyodbc通过 pyodbc 在 OSX 上的连接问题
【发布时间】:2016-04-24 03:34:40
【问题描述】:

我正在尝试编写一个 python 应用程序(带有 pyCharm IDE 的 python 3.5),它可以放置多个查询并进行数学运算等......它需要在 mac 和 windows 上运行。在 Windows 端,由于 pymssql 无法工作,我尝试了完美运行的 pyodbc(在 mac 端正好相反)。但在 mac 端,每当我尝试连接此代码时:

cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=myServerIp;DATABASE=myDatabaseName;UID=myUserName;PWD=myPassword')
cursor = cnxn.cursor()

它给出的错误是:pyodbc.Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'odbc.ini' : file not found (0) (SQLDriverConnect)")

通常我可以从 excel 或 mac 上的任何其他查询软件连接 MS SQL。我在系统范围内使用实际的 SQL Server 驱动程序。

所以请指导我使用实际 SQL Server 驱动程序(付费版本)或正确配置 python 或 unixodbc(不确定是哪个问题)来解决此问题。谢谢和问候

PS:我按照文档通过 pip 安装了 pyodbc、unixodbc 和 freetds

更新1:

 $ cat $(odbc_config --odbcinstini)
[ODBC]
DEBUG=1
TraceFile=/home/ftp/sqltrace.log
Trace=Yes

[FreeTDS]
Description=MSSQL Driver
Driver=/usr/local/lib/libtdsodbc.so
$ odbc_config --ulen
-DSIZEOF_SQLULEN=8
$ odbc_config --libs
-L/usr/local/Cellar/unixodbc/2.3.2_1/lib -lodbc
$ odbc_config --prefix
/usr/local/Cellar/unixodbc/2.3.2_1
$ odbc_config --odbcinstini
/usr/local/Cellar/unixodbc/2.3.2_1/etc/odbcinst.ini
$ odbc_config --odbcini
/usr/local/Cellar/unixodbc/2.3.2_1/etc/odbc.ini
$ odbc_config --version
2.3.2

【问题讨论】:

  • 您能否更新您的问题,添加以下命令的输出? (1) odbc_config --version (2) odbc_config --odbcini (3) odbc_config --odbcinstini (4) odbc_config --prefix (5) odbc_config --libs (6) odbc_config --ulen (7) cat $(odbc_config --odbcinstini)
  • 好的。我建议在 odic.ini 中创建一个 DSN 并首先使用isql <DSN> <USER> <PASSWORD> 单独测试 ODBC 层。如果没问题,那么我的第二个测试是使用相同 DSN 的 pyodbc 进行连接。
  • 我用 brew install freetds --with-unixodbc 命令重新安装了,这对我有用。在此之前我尝试了你的建议,但它仍然给了我同样的错误。顺便说一下,当我使用上面的代码时,会创建丢失的文件。感谢您的支持

标签: python sql-server pyodbc freetds unixodbc


【解决方案1】:

使用此命令卸载并再次安装解决了该问题:

brew install freetds --with-unixodbc

【讨论】:

  • 先卸载pyodbc库,然后再安装那个库?还是您的意思是先卸载 unixodbc?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-16
  • 2011-06-07
  • 1970-01-01
  • 1970-01-01
  • 2022-06-13
  • 1970-01-01
相关资源
最近更新 更多