我正在尝试使用pyodbc
连接到Azure托管的MSSQL数据库,尽管它在本地运行,但是当我将更改推送到Heroku时我无法使其正常工作。我正在运行Windows。这是它给我的错误:
pyodbc.Error :(“ 01000”,“ [01000] [unixODBC] [驱动程序管理器]无法打开 lib“ SQL Server ODBC驱动程序13”:找不到文件(0) (SQLDriverConnect)“)
这是我开始连接的方式:
cnxn = pyodbc.connect('DRIVER={ODBC Driver 13 for SQL Server};
SERVER=serverurl;
DATABASE=db;
UID=user;
PWD=password')
这是我的Aptfile,其中包含指向Heroku驱动程序的下载链接:
unixodbc
unixodbc-dev
python-pyodbc
libsqliteodbc
https://packages.microsoft.com/ubuntu/16.04/prod/pool/main/m/msodbcsql/msodbcsql_13.1.9.2-1_amd64.deb
还有我的requirements.txt
:
...
pyodbc==4.0.24
我什至安装了一个buildpack(https://github.com/heroku/heroku-buildpack-apt)。据我了解,该驱动程序不在Heroku的一端,因此无法找到它。
如果确实是这样,我如何让Heroku下载驱动程序?我已经尝试过将下载链接放置在Aptfile中,如上所示,但是它似乎不起作用。
答案 0 :(得分:0)
我相信可以使用与类似问题Python cant find ODBC Driver on Heroku after setting everything相同的方法来解决此问题。
tldr :解决方案是在Ubuntu 18.04环境中预编译用于SQL Server的ODBC驱动程序17,然后通过此buildpack https://github.com/matt-bertoncello/python-pyodbc-buildpack.git
将所需的驱动程序文件复制到Heroku。通过在Ubuntu 16.04环境中预编译ODBC驱动程序13,可以实现相同的过程。