【问题标题】:While running my app on bluemix getting error Can't open lib 'SQL Server'在 bluemix 上运行我的应用程序时出现错误无法打开 lib 'SQL Server'
【发布时间】: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


【解决方案1】:

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 多年,它对我很好。祝你好运!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-09-29
    • 1970-01-01
    • 2010-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-24
    相关资源
    最近更新 更多