Oracle
 sql >> Datenbank >  >> RDS >> Oracle

So installieren Sie cx_Oracle auf El Capitan

Ich habe das oben Gesagte versucht und beim Versuch, cx_Oracle mit Oracle instantclient 12.1 zu installieren, die folgende Fehlermeldung erhalten :

[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

Beachten Sie den @rpath im Fehler - es stellt sich heraus, dass beim Erstellen der cx_Oracle-Bibliothek (für Instantclient 12.1) Auf El Capitan erwartet der gcc-Compiler, dass das Flag -rpath gesetzt wird, um zu wissen, wo die oben erwähnten dynamisch verknüpften Bibliotheken (*.dylib) zu finden sind. Standardmäßig auf Instantclient 12.1 pip tut dies nicht für Sie.

# 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

Der python -c "import cx_Oracle" sollte keine Fehler melden.

Eine vollständige Installationsanleitung (einschließlich Instantclient-Download und -Konfiguration) finden Sie in meinem Beitrag unter http://thelaziestprogrammer.com/sharrington/databases/oracle/install-cx_oracle-mac für Details.