Python: importar cx_Oracle ImportError: no se muestra ningún módulo llamado cx_Oracle error

Intento escribir un script en .py para la conectividad de Oracle:

#!/usr/bin/python import cx_Oracle connstr='username/pwd@database' conn = cx_Oracle.connect(connstr) curs = conn.cursor() curs.execute('select * from table1;') print curs.description for row in curs: print row conn.close() 

Obtuve el siguiente error:

 Traceback (most recent call last): File "test_SQLPython.py", line 3, in ? import cx_Oracle ImportError: No module named cx_Oracle 

¿Cualquier ayuda sería apreciada? Gracias.

Ayuda de Windows:

  1. Consigue el cliente instantáneo. No tiene instalado exe. Sólo tienes que copiarlo en alguna parte.
  2. Ponga el directorio en su variable PATH.
  3. Vaya al indicador de comandos y establezca 2 variables, por ejemplo:

    TNS_ADMIN=C:\instant_client\instantclient_11_2 ORACLE_HOME=C:\instant_client\instantclient_11_2

Luego instale el módulo cx_Oracle desde un exe. Si usas pip o easy_install, … buena suerte.

Puede obtener el instalador aquí: https://pypi.python.org/pypi/cx_Oracle/5.1.3

Tuve un problema similar, tienes que asegurarte de tener:

  1. cliente instantáneo oracle
  2. cx_Oracle binary (de SourceForge)
  3. Python IMPORTANTE: asegúrate de que TODOS sean de 64 o 32 bits, la mezcla causará problemas

Intenté instalarlo a través de rpm publicado en las respuestas anteriores, pero no funcionó. Lo que funcionó en su lugar es pip install simple.

 pip install cx_oracle 

El comando anterior instaló cx_oracle=6.1 Tenga en cuenta que estoy usando python 2.7.14 Anaconda release y oracle 12c .

Para acceder a Oracle desde python necesita (además) el módulo cx_Oracle . El módulo debe estar ubicado en la ruta de python del sistema o debe establecer el PYTHONPATH apropiado.

Acabo de enfrentar el mismo problema. Primero, debe instalar el cliente de Oracle adecuado para su sistema operativo. En mi caso, para instalarlo en Ubuntu x64, he seguido estas instrucciones https://help.ubuntu.com/community/Oracle%20Instant%20Client#Install_RPMs

Luego, debe instalar cx_Oracle, un módulo de Python para conectarse al cliente de Oracle. Una vez más, asumiendo que está ejecutando Ubuntu en una máquina de 64 bits, debe escribir en un shell:

 wget -c http://prdownloads.sourceforge.net/cx-oracle/cx_Oracle-5.0.4-11g-unicode-py27-1.x86_64.rpm sudo alien -i cx_Oracle-5.0.4-11g-unicode-py27-1.x86_64.rpm 

Esto funcionará para Oracle 11g si ha instalado Python 2.7.x, pero puede descargar una versión diferente de cx_Oracle en http://cx-oracle.sourceforge.net/ Para verificar qué versión de Python tiene, escriba un terminal:

 python -V 

Espero que ayude

La respuesta de Unknown92 me ayudó ( en windows ). Tenga en cuenta que todas las versiones deben caber.

He descargado cx_Oracle aquí , para mí el archivo cx_Oracle-5.2.1-12c.win-amd64-py3.5.exe funcionó con:

  • Python 3.5.1 64bit. por alguna razón, el enlace de descarga predeterminado de la página principal es para la versión de 32 bits.
  • Y el cliente de la instancia de Oracle 12.1.0.2.0 (el archivo denominado instantclient-basic-windows.x64-12.1.0.2.0.zip) aquí .

Ayuda de Windows y Anaconda

Anaconda 4.3.0 viene con Python 3.6 como la raíz. Actualmente cx_Oracle solo soporta hasta 3.5. Intenté crear el entorno 3.5 en envs, pero cuando ejecuto cx_Oracle-5.2.1-11g.win-amd64-py3.5.exe, se instala en root solo contra 3.6

La única solución que pude encontrar fue cambiar el entorno raíz de 3.6 a 3.5:

 activate root conda update --all python=3.5 

Cuando termine, ejecute cx_Oracle-5.2.1-11g.win-amd64-py3.5.exe.

Lo probé con importación y funcionó bien.

 import CX_Oracle 

Para mí, el problema era que había instalado cx_Oracle a través de pip de DOS que lo cambió a minúsculas. Instalarlo a través de Git Bash en cambio mantuvo el caso mixto.