Linux python3 - 无法打开库'SQL Server'

新手上路,请多包涵

我正在尝试连接到 Microsoft Azure SQL 服务器数据库。

这就是我尝试连接的方式:

  conn = pyodbc.connect('DRIVER={SQL Server};SERVER=%s' % (self.config.get("Sql", "DataSource")),
                        user= self.config.get("Sql", "UserId"),
                        password=self.config.get("Sql", "Password"),
                        database=self.config.get("Sql", "Catalog"))

执行此行时出现错误。错误:

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

无法弄清楚为什么会这样,知道吗?

原文由 Montoya 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 920
2 个回答

我还建议您安装 ODBC 驱动程序,然后尝试使用 pyodbc。我假设您使用的是 Ubuntu 15.04+ 机器。

要安装 ODBC 驱动程序,请遵循以下说明:

 sudo su
wget https://gallery.technet.microsoft.com/ODBC-Driver-13-for-Ubuntu-b87369f0/file/154097/2/installodbc.sh
sh installodbc.sh

完成后,使用 pip 安装 pyodbc 并尝试以下脚本:

 import pyodbc
server = 'tcp:myserver.database.windows.net'
database = 'mydb'
username = 'myusername'
password = 'mypassword'
cnxn = pyodbc.connect('DRIVER={ODBC Driver 13 for SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)
cursor = cnxn.cursor()
cursor.execute("SELECT @@version;")
row = cursor.fetchone()
while row:
    print row
    row = cursor.fetchone()

让我知道情况如何。

干杯,

见面

原文由 meet-bhagdev 发布,翻译遵循 CC BY-SA 3.0 许可协议

DRIVER={SQL Server} 替换为 DRIVER={/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.0.so.1.1}

原文由 Jason 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题