我正在尝试在 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/