在尝试自己解决这个问题后,我需要一些帮助或推动正确的方向。
我在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}
或DRIVER={FreeTDS}
,但仍然收到相同的错误can't open lib 'lib_name' : file not found
。
Scrapinghub是否支持与Microsoft SQL Server的连接?为了成功连接,我需要使用哪些驱动程序参数?
谢谢!
答案 0 :(得分:0)
无法打开lib'用于SQL Server的ODBC驱动程序13':找不到文件
以上错误通常与配置错误或缺少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
请参阅:Installing the Microsoft ODBC Driver for SQL Server on Linux and macOS。
如果您使用的是Anaconda,请查看此问题:ODBC Driver 13 for SQL Server can't open lib。