在bluemix上运行我的应用程序时出现错误无法打开lib' SQL Server'

时间:2017-07-11 15:08:22

标签: python linux ibm-cloud cloudfoundry pyodbc

我正在尝试在bluemix上创建一个cloudfaundry应用程序。它默认使用linux作为服务器。当我想在天蓝色

上连接sql server db时,我遇到了错误

错误:

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

此处连接到db的代码。我正在使用烧瓶

@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

1 个答案:

答案 0 :(得分:0)

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

您需要考虑安装和使用FOSS FreeTDS或Microsoft ODBC Driver for Linux 13.1

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')

cursor = cnxn.cursor()

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