python - 在 bluemix 上运行我的应用程序时出现错误 Can't open lib 'SQL Server'

标签 python linux ibm-cloud cloud-foundry pyodbc

我正在尝试在 bluemix 上创建一个 cloudfaundry 应用程序。它默认使用 linux 作为服务器。当我尝试在 azure 上连接 sql server db 时出现以下错误

错误:

pyodbc.Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'SQL 
Server' : file not found (0) (SQLDriverConnect)")

连接数据库的代码在这里。我正在使用 flask

@app.route('/sql/<lat>/<long>') 
def api_sql(lat,long):
 cnxn =pyodbc.connect('DRIVER{SQLServer};SERVER=prashantvikramsingh.database.windows.net;DATABASE=Zillow;UID=UserId;PWD=pass')
cursor = cnxn.cursor()

有类似问题here .如何在 bluemix 上部署应用程序时执行此步骤。 这一步可以在本地机器上完成。但是如何在云上做到这一点? .有什么办法可以解决这个错误

这些是本地envirnment.yml文件的内容

name: pyodbc-test
dependencies:
 - pyodbc
 - flask
 - itsdangerous
 - Jinja2
 - MarkupSafe
 - Werkzeug
 - unixODBC

最佳答案

SQL Server 驱动程序仅适用于 Windows。

您需要研究安装和使用 FOSS FreeTDS 或 Microsoft Linux 13.1 的 ODBC 驱动程序:

http://www.freetds.org/userguide/install.htm https://blogs.technet.microsoft.com/dataplatforminsider/2017/02/08/odbc-driver-13-1-for-linux-released/

然后,在您的连接字符串中,如果您使用的是 FreeTDS,例如:

cnxn =pyodbc.connect('DRIVER={FreeTDS};SERVER=prashantvikramsingh.database.windows.net;DATABASE=Zillow;UID=UserId;PWD=pass;TDS_Version=7.2')

光标 = cnxn.cursor()

我已经使用 FreeTDS 很多年了,它对我很好。祝你好运!

关于python - 在 bluemix 上运行我的应用程序时出现错误 Can't open lib 'SQL Server',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45038328/

相关文章:

python - 核心应用程序测试中的错误

python - 卸载Python3.3.4(之前通过源码安装)

linux - linux下两个文件的交集

javascript - 如何异步并行多个 app.use 调用?

python - 覆盖 Django Admin 的保存方法

python - 获取嵌套字典中的列表

c - 使用linux内核函数在文件中查找最长的字符串并写入第二个文件

java - 使用 ElephantSQL 在 Bluemix 中部署 Liberty 应用程序时找不到有效的 JDBC 驱动程序

kubernetes - 无法确定集群上安装的 Kubernetes 服务的类型

python - 对 Django 通用 View 有点困惑