我已经在互联网上经历了每一个可能的解决方案,但我无法使pyobdc获得heroku的驱动程序。
我创建应用程序的步骤如下:
heroku create
heroku config:set FLASK_CONFIG=heroku
heroku buildpacks:add heroku/python
heroku buildpacks:add --index 1 heroku-community/apt
git push heroku master
我甚至尝试使用odbc buildpack,但仍然没有运气:
heroku buildpacks:add https://github.com/iFix/heroku-buildpack-odbc.git
通过微软网站后,我修剪了我的Aptfile到instuct heroku安装以下软件包:
# install msodbcsql17
https://packages.microsoft.com/ubuntu/16.04/prod/pool/main/m/msodbcsql17/msodbcsql17_17.4.2.1-1_amd64.deb
# install mssql-tools
https://packages.microsoft.com/ubuntu/16.04/prod/pool/main/m/mssql-tools/mssql-tools_17.4.1.1-1_amd64.deb
# install unixodbc-dev
unixodbc-dev
这使得pyodbc安装没有错误。但是当我运行pyodbc.drivers()时,它什么也没有返回。Ubuntu 16.04上的相同命令返回“ODBC Driver 17 for SQL Server”。
该项目的源代码位于:https://github.com/IamVNIE/odbcTestHeroku
托管的应用程序位于:https://pyodbctest.herokuapp.com/
有没有人能提供一些指导,使这一工作。
2条答案
按热度按时间n9vozmp41#
我已经解决了这个问题,在运行Ubuntu 18.04的机器上预编译ODBC Driver 17 for SQL Server,并通过Heroku构建包将
libmsodbcsql-17.5.so.2.1
和msodbcsqlr17.rll
文件复制到适当的目录中。这是ODBC Driver 17.5 for SQL Server,我可能不会编译此驱动程序的其他版本,但我想概念仍然是相同的。Heroku构建包及其要求可在此处找到
https://github.com/matt-bertoncello/python-pyodbc-buildpack.git
dw1jzc5e2#
之前的答案对我很有效,直到我不得不切换到heroku堆栈22。之后,我开始得到以下错误:
pyodbc.OperationalError:“[08001] [unixODBC][Microsoft][用于SQL Server的ODBC驱动程序17]客户端无法建立连接(0)(SQLDriverConnect)”
为了解决这个问题,我切换到另一个库python pymssql,它处理Azure中的Microsoft SQL服务器的连接。