Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment installer cx_Oracle sur El Capitan

J'ai tenté ce qui précède et j'ai obtenu l'erreur suivante lors de la tentative d'installation de cx_Oracle à l'aide d'Oracle instantclient 12.1 :

[535]: /opt/instantclient_12_1 $ python -c "import cx_Oracle"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: dlopen(/Library/Python/2.7/site-packages/cx_Oracle.so, 2): 
        Library not loaded: @rpath/libclntsh.dylib.12.1
  Referenced from: /Library/Python/2.7/site-packages/cx_Oracle.so
  Reason: image not found

Remarquez le @rpath dans l'erreur - il s'avère que lors de la construction de la bibliothèque cx_Oracle (pour instantclient 12.1) sur El Capitan, le compilateur gcc s'attend à ce que l'indicateur -rpath soit défini pour savoir où trouver les bibliothèques liées dynamiquement susmentionnées (*.dylib). Par défaut, sur instantclient 12.1, pip ne le fait pas pour vous.

# Set -rpath option before installing...this will use $ORACLE_HOME during compilation
export FORCE_RPATH=TRUE
pip install cx_Oracle
# And verify cx_Oracle was correctly installed
python -c "import cx_Oracle"
# If this line fails install cx_Oracle with:
#   pip install --no-cache-dir --allow-external --allow-unverified cx_oracle

Le python -c "import cx_Oracle" ne doit signaler aucune erreur.

Pour un guide d'installation complet (y compris le téléchargement et la configuration du client instantané), consultez mon article sur http://thelaziestprogrammer.com/sharrington/databases/oracle/install-cx_oracle-mac pour plus de détails.