Oracle
 sql >> Database >  >> RDS >> Oracle

Come installare cx_Oracle su El Capitan

Ho provato quanto sopra e ho ricevuto il seguente errore durante il tentativo di installare cx_Oracle utilizzando 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

Nota il @rpath nell'errore - si scopre che durante la creazione della libreria cx_Oracle (per instantclient 12.1) su El Capitan, il compilatore gcc si aspetta che il flag -rpath sia impostato per sapere dove trovare le suddette librerie collegate dinamicamente (*.dylib). Per impostazione predefinita, sul client istantaneo 12.1, pip non lo fa per te.

# 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

Il python -c "import cx_Oracle" non dovrebbe segnalare errori.

Per una guida all'installazione completa (incluso il download e la configurazione del client istantaneo) dai un'occhiata al mio post su http://thelaziestprogrammer.com/sharrington/databases/oracle/install-cx_oracle-mac per i dettagli.