2017-11-08 3 views
2

Jede Hilfe mit diesem Problem wird sehr geschätzt.Python - Kann lib 'libttdsodbc.so' nicht öffnen: Datei nicht gefunden

Ziel: Verbinden Sie Django über FreeTDS mit dem MSSQL-Server. Ich benutze eine Debian x64-Box.

Problem: Beim Versuch, eine Verbindung herzustellen, bekomme ich Folgendes.

('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'libtdsodbc.so' : file not found (0) (SQLDriverConnect)") 

Mein /etc/odbcinst.ini wie folgt

[FreeTDS] 
Description = FreeTDS 
driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so 
setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so 

Die Dateien und 777 Zugang zum Testen haben existieren tun konfiguriert ist.

Die Verbindungszeichenfolge ist wie

cnxn = pyodbc.connect(
     'DRIVER={FreeTDS};SERVER=' + server + ';PORT=1443;DATABASE=' + database + ';UID=' + username + ';PWD=' + password) 
    cursor = cnxn.cursor() 

Mein odbcinst -j liest (seit Zugabe Symlink)

unixODBC 2.3.1 
DRIVERS............: /usr/local/etc/odbcinst.ini 
SYSTEM DATA SOURCES: /usr/local/etc/odbc.ini 
FILE DATA SOURCES..: /usr/local/etc/ODBCDataSources 
USER DATA SOURCES..: /root/.odbc.ini 
SQLULEN Size.......: 8 
SQLLEN Size........: 8 
SQLSETPOSIROW Size.: 8 
+0

versuchen https://stackoverflow.com/questions/28566121/pypyodbc- cant-open-lib-freetds-Datei-nicht-gefunden-Fehler-wenn-versuchen-zu-Verbindung – Zety

+0

Die vorgeschlagenen Änderungen dort funktionieren nicht für mich. Ich werde Pymssql jedoch geben. –

+0

Nicht sicher, aber haben Sie versucht, einen Symlink direkt in/usr/lib hinzuzufügen? 'sudo ln -s /usr/lib/x86_64-linux-gnu/odbc/libtsodbc.so/usr/lib/libtsodbc.so' && ' sudo ldconfig' . Ich hatte Probleme mit anderen .so Libraries während des Imports und es funktionierte für mich. – bobolafrite

Antwort

0

Wenn jemand anderes in diese Hürde läuft, lesen Sie in diesem Blog-Post.

https://emacstragic.net/2017/11/06/mssql-odbc-client-on-debian-9-stretch/

Im Grunde hatte ich für sie eine spezifische libssl Version Ziel zu arbeiten.

an den installierten Versionen der Suche i gefunden:

ldd /opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.1.so.9.1 | grep 'not found' 
libcrypto.so.1.0.0 => not found 
libssl.so.1.0.0 => not found 

und manuell eine frühere Version der Installation das Problem behoben diese

wget "http://security.debian.org/debian-security/pool/updates/main/o/openssl/libssl1.0.0_1.0.1t-1+deb8u7_amd64.deb" 
sudo apt install ./libssl1.0.0_1.0.1t-1+deb8u7_amd64.deb 
Verwandte Themen