【问题标题】:Installing ODBC Driver on Heroku在 Heroku 上安装 ODBC 驱动程序
【发布时间】:2018-10-26 07:34:37
【问题描述】:

我正在尝试使用 pyodbc 连接到托管在 azure 上的 MSSQL 数据库,虽然它在本地工作,但当我将更改推送到 Heroku 时,我无法让它工作。我正在运行 Windows。这是它给我的错误:

pyodbc.Error: ('01000', "[01000] [unixODBC][驱动管理器]无法打开 lib 'ODBC Driver 13 for SQL Server':找不到文件 (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 中,但似乎不起作用。

【问题讨论】:

    标签: python heroku pyodbc


    【解决方案1】:

    我相信这可以通过与类似问题 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,同样的过程应该能够工作。

    【讨论】:

      猜你喜欢
      • 2018-12-09
      • 1970-01-01
      • 2016-10-03
      • 1970-01-01
      • 2018-02-27
      • 1970-01-01
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      相关资源
      最近更新 更多