J'essaie de configurer cx_Oracle
pour travailler avec Python.
J'utilise
cx_Oracle
version 6.0.2Je définis les variables d'environnement suivantes:
export Oracle_HOME="/Volumes/DATA/Programs/PY/instantclient_12_1"
export DYLD_LIBRARY_PATH="$Oracle_HOME:$DYLD_LIBRARY_PATH"
export LD_LIBRARY_PATH=$Oracle_HOME
export PATH=$PATH:$Oracle_HOME
export Oracle_SID=edocd
export TNS_ADMIN=/Volumes/DATA/Programs/PY/instantclient_12_1/network/admin
export TWO_TASK=${Oracle_SID}
Voici ce que j'ai essayé:
Sudo python setup.py build
Sudo python setup.py install
Lorsque j'ai essayé d'exécuter un script simple pour vérifier la connexion Oracle, j'ai réussi à me connecter via sqlplus
.
Voici l'erreur que je reçois:
cx_Oracle.DatabaseError: DPI-1047: Impossible de charger la bibliothèque du client Oracle 64 bits: "dlopen (libclntsh.dylib, 1): image introuvable". Voir https://Oracle.github.io/odpi/doc/installation.html#macos pour obtenir de l'aide.
Ma solution pour Ubuntu 16.04 (64bit)
A tl; dr: du guide officiel :
1) Téléchargez le fichier instantclient-basic-linux.x64-12.2.0.1.0.0.Zip
2) Extrayez-le dans le répertoire/opt/Oracle:
$ Sudo mkdir -p /opt/Oracle
$ cd /opt/Oracle
$ unzip ~/Downloads/instantclient-basic-linux.x64-12.2.0.1.0.Zip
3) Installer libaio package
$ Sudo apt-get install libaio1
4) Modifiez le fichier Oracle-instantclient.conf comme suit:
$ Sudo sh -c "echo /opt/Oracle/instantclient_12_2 > /etc/ld.so.conf.d/Oracle-instantclient.conf"
$ Sudo ldconfig
Pour moi
source ~/.profile
était l'étape sautée lors de l'installation.
lien ${your_instantclient_folder}
-> ${Oracle_home}/lib
cd ${Oracle_HOME};
unzip instantclient-basic-macos.x64-x.x.x.Zip
ln -s instantclient_X_X lib