Solución:
Me encontré con un error similar al intentar pip install cx_oracle, incluso después de instalar el cliente instantáneo de Oracle, y después de configurar $ ORACLE_HOME y $ LD_LIBRARY_PATH para incluir la ruta al cliente.
Parece que puede haber instalado Instant Client, pero no Instant Client SDK. El SDK es una descarga / instalación separada, y cx_oracle parece necesitar ambos, ya que las inclusiones que faltan (‘oci.h’ y todo el resto) se encuentran en el SDK.
Si aún no ha estado allí, puede encontrar las páginas de descarga de Oracle Instant Client / SDK aquí:
http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
Suponiendo que ya descargó e instaló el cliente apropiado para su plataforma, por ejemplo, este:
oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.zip
También deberá descargar e instalar el SDK correspondiente, por ejemplo, este:
oracle-instantclient11.2-sdk-11.2.0.1.0-1.x86_64.zip
Siempre que el SDK esté instalado en algún lugar de las rutas de ORACLE_HOME y LD_LIBRARY_PATH, las inclusiones deberían resolverse.
El problema es que SDK no está presente como lo señaló bschulz. Pude solucionar el problema siguiendo estos pasos:
-
Descargó e instaló / descomprimió “instantclient-basic” y “instantclient-sdk” en $ ORACLE_HOME.
Puedes conseguirlos desde aquí
-
Configurar el
/etc/environment
export ORACLE_HOME=/opt/oracle/instantclient_12_2 export LD_LIBRARY_PATH=/opt/oracle/instantclient_12_2 cd $ORACLE_HOME unzip /sdk/ottclasses.zip cp -R ./sdk/* . cp -R ./sdk/include/* . ln -s libclntsh.so.12.1 libclntsh.so ln -s libocci.so.12.1 libocci.so
Ahora corre pip install cx_Oracle==5.3
Seguí estos y se instaló con éxito 5.3 para mí.
Es posible que deba instalar algunas dependencias adicionales como se enumeran en la Documentación de los paquetes que se supone que debe descargar / instalar.