2

在尝试自己解决这个问题后,我需要一些帮助或朝着正确的方向轻推。

我在 Scrapinghub 上编写并部署了 Scrapy spider。该蜘蛛收集一些数据,完成后将这些数据保存到远程 Microsoft SQL Server。我使用 SQLAlchemy 作为 ORM 和 Pyodbc 作为驱动程序。为了连接到蜘蛛代码中的数据库,我使用:

params = quote_plus('DRIVER={ODBC Driver 13 for SQL Server};SERVER="server";DATABASE="db";UID="user";PWD="pass")
engine = create_engine("mssql+pyodbc:///?odbc_connect={}".format(params))

在我的本地 PC 上使用 Win10 一切正常 - 蜘蛛成功连接到远程数据库并保存数据。但是如果我尝试在 Scrapinghub 上运行这个蜘蛛,我会得到一个错误: DBAPIError: (pyodbc.Error) ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'ODBC Driver 13 for SQL Server' : file not found (0) (SQLDriverConnect)")

好像DRIVER零件有问题。我尝试更改DRIVER={ODBC Driver 13 for SQL Server}DRIVER={SQL Server}orDRIVER={FreeTDS}但仍然遇到相同的错误can't open lib 'lib_name' : file not found

Scrapinghub 是否支持连接到 Microsoft SQL Server?为了成功连接,我需要使用哪些驱动程序参数?

谢谢!

4

1 回答 1

0

无法打开 lib 'ODBC Driver 13 for SQL Server':找不到文件

上述错误通常与配置错误或odbcinst.ini文件丢失有关。

运行odbcinst -j并验证是否odbcinst.ini存在并且它具有正确的驱动程序路径,例如

[ODBC Driver 13 for SQL Server]
Description=Microsoft ODBC Driver 13 for SQL Server
Driver=/usr/local/lib/libmsodbcsql.13.dylib

以下是创建用户配置文件 ( ) 的示例命令~/.odbcinst.ini

printf "[ODBC Driver 13 for SQL Server]\nDescription=Microsoft ODBC Driver 13 for SQL Server\nDriver=/usr/local/lib/libmsodbcsql.13.dylib\n" >> ~/.odbcinst.ini

请参阅:在 Linux 和 macOS 上安装 Microsoft ODBC Driver for SQL Server

如果您使用的是 Anaconda,请查看此问题:ODBC Driver 13 for SQL Server can't open lib

于 2017-10-24T13:06:47.570 回答