Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como instalar o cx_Oracle no El Capitan


Eu tentei o acima e recebi o seguinte erro ao tentar instalar o cx_Oracle usando o 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

Observe o @rpath no erro - acontece que ao construir a biblioteca cx_Oracle (para instantclient 12.1) no El Capitan, o compilador gcc espera que o sinalizador -rpath seja definido para saber onde encontrar as bibliotecas vinculadas dinamicamente acima mencionadas (*.dylib). Por padrão, no instantclient 12.1, pip não faz isso por você.
# 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

O python -c "import cx_Oracle" não deve relatar erros.

Para um guia de instalação completo (incluindo download e configuração do instantclient), confira minha postagem em http://thelaziestprogrammer.com/sharrington/databases/oracle/install-cx_oracle-mac para detalhes.