Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Heroku上安装ODBC驱动程序_Python_Heroku_Pyodbc - Fatal编程技术网

Python 在Heroku上安装ODBC驱动程序

Python 在Heroku上安装ODBC驱动程序,python,heroku,pyodbc,Python,Heroku,Pyodbc,我正在尝试使用pyodbc连接到azure上托管的MSSQL数据库,虽然它在本地工作,但当我将更改推送到Heroku时,它无法工作。我正在运行Windows。这就是它给我的错误: pyodbc.Error:('01000',“[01000][unixODBC][Driver Manager]无法打开 库“SQL Server的ODBC驱动程序13”:未找到文件(0) (SQLDriverConnect)”) 以下是我启动连接的方式: cnxn = pyodbc.connect('DRIVER={

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

pyodbc.Error:('01000',“[01000][unixODBC][Driver Manager]无法打开 库“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
和my
requirements.txt

...
pyodbc==4.0.24
我甚至安装了一个buildpack()。据我所知,司机不在Heroku那边,因此无法定位


如果真的是这样,我如何让Heroku下载驱动程序?如上图所示,我尝试将下载链接放置在Aptfile中,但似乎不起作用。

我相信这可以用与类似问题相同的方法解决

tldr:解决方案是在Ubuntu 18.04环境中预编译SQL Server的ODBC驱动程序17,并通过此buildpack
https://github.com/matt-bertoncello/python-pyodbc-buildpack.git
。通过在Ubuntu 16.04环境中预编译ODBC驱动程序13,同样的过程也可以工作