在 Heroku 上安装 ODBC 驱动程序

问题描述 投票:0回答:2

我正在尝试使用

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

我什至安装了一个构建包(https://github.com/heroku/heroku-buildpack-apt)。据我了解,Heroku 端不存在驱动程序,因此它无法找到它。

如果确实如此,我该如何让 Heroku 下载驱动程序?我尝试将下载链接放在 Aptfile 中,如上所示,但似乎不起作用。

python heroku pyodbc
2个回答
0
投票

我相信这可以用与类似问题相同的方法来解决设置完所有内容后,Python 无法在 Heroku 上找到 ODBC 驱动程序

tldr:解决方案是在 Ubuntu 18.04 环境上预编译 SQL Server 的 ODBC 驱动程序 17,并通过此构建包将所需的驱动程序文件复制到 Heroku

https://github.com/matt-bertoncello/python-pyodbc-buildpack.git
。通过在 Ubuntu 16.04 环境上预编译 ODBC 驱动程序 13,可以执行相同的过程。


0
投票

您找到解决这个问题的方法了吗?我在 ODBC 驱动程序 18 中遇到了同样的问题,希望您能分享任何见解。

谢谢!

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.