【发布时间】:2017-07-11 15:08:22
【问题描述】:
我正在尝试在 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)")
连接数据库的代码在这里。我正在使用烧瓶
@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
【问题讨论】:
-
我已经尝试了几个选项,但在这方面没有任何进展。 Microsoft 现在是 Cloud Foundry Foundation 的成员,因此可以联系他们寻求帮助。
-
它缺少 SQL Server 驱动程序,我不确定是否有一种简单的方法来安装它。您包含的链接需要 sudo/root 访问权限,而这在 CF 上是不可能的。您将需要一种方法来安装 w/out root。另一种可能性是制作一个可以使用 Conda 安装的包,但 SQL Server 驱动程序是专有的,所以我认为你不能合法地这样做(虽然我不是律师)。如果您愿意使用 FreeTDS,那也许是一个可能的解决方案。另一个可能是使用 pymssql 而不是 ODBC。
-
@ChrisSnow 会尝试的。感谢所有帮助
-
@DanielMikusa 。谢谢你。如果成功,将尝试使用 pymssql 并发布更新。
标签: python linux ibm-cloud cloud-foundry pyodbc