(pyodbc.Error) (‘01000‘, “[01000] [unixODBC][Driver Manager]Can‘t open lib ‘ODBC Driver 17 for SQL S

环境:ubuntu18.04(非该环境的,解决方法见文章最后)
语言:python3.8
以下是连接mssql的语句:
con_string = “mssql+pyodbc://” + user + “:” + password + “@” + host + “/” + db + “?driver=ODBC+Driver+17+for+SQL+Server”
engine = create_engine(con_string)
conn = engine.connect()
cur = conn.cursor()
报错信息如题目:
(pyodbc.Error) (‘01000’, “[01000] [unixODBC][Driver Manager]Can’t open lib ‘ODBC Driver 17 for SQL Server’ : file not found (0) (SQLDriverConnect)”)

原因:没安装odbc
解决办法:安装odbc

sudo su
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -

#Download appropriate package for the OS version
#Choose only ONE of the following, corresponding to your OS version

#Ubuntu 16.04
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list

#Ubuntu 18.04
curl https://packages.microsoft.com/config/ubuntu/18.04/prod.list > /etc/apt/sources.list.d/mssql-release.list

#Ubuntu 20.04
curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list > /etc/apt/sources.list.d/mssql-release.list

#Ubuntu 20.10
curl https://packages.microsoft.com/config/ubuntu/20.10/prod.list > /etc/apt/sources.list.d/mssql-release.list

exit
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install -y msodbcsql17
# optional: for bcp and sqlcmd
sudo ACCEPT_EULA=Y apt-get install -y mssql-tools
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
# optional: for unixODBC development headers
sudo apt-get install -y unixodbc-dev

选择对应版本的语句逐条执行完毕后,即可解决。

Linux其他发行版:
https://docs.microsoft.com/zh-cn/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-ver15#ubuntu17

macOS:
https://docs.microsoft.com/zh-cn/sql/connect/odbc/linux-mac/install-microsoft-odbc-driver-sql-server-macos?view=sql-server-ver15

Windows:
https://docs.microsoft.com/zh-cn/sql/connect/odbc/windows/microsoft-odbc-driver-for-sql-server-on-windows?view=sql-server-ver15

上一篇:[DBNETLIB]ConnectionOpen (SECCreateCredentials()).


下一篇:为基于Docker的Doris安装mysql的ODBC驱动CentOS