Can't open lib 'ODBC Driver 13 for SQL Server'? Sym linking issue?
Running:
odbcinst -j
It yielded:
unixODBC 2.3.4
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /Users/emehex/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
Instead of copying the files to the /etc/
directory (not sure why unixODBC thought they were there) I created a symbolic link to each file:
sudo ln -s /usr/local/etc/odbcinst.ini /etc/odbcinst.ini
sudo ln -s /usr/local/etc/odbc.ini /etc/odbc.ini
This solved the problem.
ODBC Driver 13 for SQL Server can't open lib on pyodbc while connecting on AWS E2 ubuntu instance
As per nehaljwani's GitHub comment, this issue is related to libgcc
mismatch. The official page suggests the minimum version of libgcc
required for symbol v3.4.21
is v5.1.0
.
GCC 5.1.0: GLIBCXX_3.4.21, CXXABI_1.3.9
Here are two suggestions how to solve it:
Update
libgcc
to >= 5.1.0 (recommended) by executingconda update libgcc
. E.g.$ conda update libgcc
...
The following packages will be UPDATED:
libgcc: 4.8.5-2 --> 5.2.0-0
Proceed ([y]/n)? y
$ conda list gcc
# packages in environment at /conda/envs/test:
#
libgcc 5.2.0 0
(test) root@75eb43ff7f79:~$ readelf --version-info /conda/envs/test/lib/libstdc++.so | grep -Po '(?<=GLIBCXX_)([\d.]*)' | sort -Vr | head -1
3.4.21LD_PRELOAD
trick (hacky)(test) root@75eb43ff7f79:~$ LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libstdc++.so.6 python test.py
Reading data from table
Microsoft SQL Server vNext (CTP2.0) - 14.0.500.272 (X64)
Apr 13 2017 11:44:40
Copyright (C) 2017 Microsoft Corporation. All rights reserved.
Developer Edition (64-bit) on Linux (Ubuntu 16.04.2 LTS)
Troubleshooting
- Make sure the configured driver file (
/opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.0.so.1.0
) configured in your INI file (see:odbcinst -j
) exist and has read and executable permissions (O_RDONLY|O_CLOEXEC
) - See: Installing the Microsoft ODBC Driver for SQL Server on Linux and macOS.
Can't open lib ODBC Driver 17 OSX
If anyone ever gets the same problem as I have, you have to use the solution found at:
Can't open lib 'ODBC Driver 13 for SQL Server'? Sym linking issue?
Related Topics
Adding a Particle Effect to My Clicker Game
Best Way to Parse a Url Query String
Iterate Over Individual Bytes in Python 3
Which Version of Python Do I Have Installed
Removing the Tk Icon on a Tkinter Window
Check If Value Already Exists Within List of Dictionaries
How to Login to Django Using Tastypie
How to Fix Character Constantly Accelerating in Both Directions After Deceleration Pygame
Initialize List to a Variable in a Dictionary Inside a Loop
From ... Import or Import ... as for Modules
How to Force a Python Wheel to Be Platform Specific When Building It
Python - Read File from and to Specific Lines of Text