2016-12-16 1 views
1

Ich habe Oracle 11g konfiguriert in meinem Ubuntu 16.04 und es funktioniert einwandfrei.CX_Oracle Import Fehler für libclnts.so.12.1

Zuvor habe ich versucht, Oracle 12c zu installieren, was einige Fehler gab, also habe ich es entfernt und 11g installieren.

Jetzt ist mein Problem, dass, wenn ich versuche, import cx_Oracle in python zu verwenden, es Importfehler für libclntsh.so.12.1 gibt.

Hier ist die gesamte Ausgabe:

>>> import cx_Oracle 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ImportError: libclntsh.so.12.1: cannot open shared object file: No such file or directory 

Meine .bashrc diese Einträge hat:

export PATH="/home/marvin/anaconda2/bin:$PATH" 
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe 
export ORACLE_SID=XE 
export NLS_LANG=`$ORACLE_HOME/bin/nls_lang.sh` 
export ORACLE_BASE=/u01/app/oracle 
export LD_LIBRARY_PATH=$ORACLE_HOME/lib 
export PATH=$ORACLE_HOME/bin:$PATH 

Warum ist es immer noch Oracle 12c zu nehmen versuchen? Gibt es einen Fehler in der 11g Konfiguration oder in der 12c Deinstallation?

Ich habe bereits versucht, cx_oracle über pip zu deinstallieren und neu zu installieren.

Antwort

6

Führen Sie den Befehl ldd in der gemeinsam genutzten Bibliotheksdatei cx_Oracle aus, die versucht wird, zu laden. Sie sollten den „imp“ Modul zu verwenden, um die Position des cx_Oracle Modul zu finden, die geladen wird, wie in der folgenden:

import imp 
imp.find_module("cx_Oracle") 

Sie entdecken, dass das Modul, um es irgendwo gefunden zu laden versucht wird Du hast es nicht erwartet!

Außerdem, wenn Sie den Befehl zu pip installieren cx_Oracle bestätigen, dass es tatsächlich kompiliert und welche Dateien verknüpft werden.

Ich hoffe, einer dieser Tipps kann Ihnen helfen, herauszufinden, was das Problem mit Ihrer Konfiguration ist.

+1

endlich behoben! Danke, Mann. Bei der Verwendung von 'ldd cx_Oracle.so' hatte ich diese Ausgabe:' linux-vdso.so.1 => (0x00007ffeb4dc3000) '' libclntsh.so.12.1 => nicht gefunden ... 'Dann habe ich dein neu installiertes' oracle 11g' deinstalliert wieder komplett. säuberte meinen 'pip' Cache und installierte' cx_Oracle' Paket erneut. Jetzt funktioniert alles gut. Problem war mit ** Pip-Cache **, da es zuvor abgerufene cx_oracle genommen hat, die die ganze Zeit Fehler verursachte. –