Tengo un problema al importar cx_Oracle con Python. Conozco a un montón de problemas con cx_Oracle se han discutido aquí, pero parece que no puedo encontrar una solución a mi problema, después de leer todos los temas relacionados.

Tengo dos equipos, uno de ellos es mi equipo y en el otro es una estación de trabajo remota, que tienen similares configs (Windows 7 64-bits). Necesito instalar cx_Oracle en la estación de trabajo remota, pero no de trabajo, mientras que funciona bien en mi equipo (me puede importar el módulo correctamente y conectar a mi DB). En la estación de trabajo remota, tengo el siguiente error :

Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
  import cx_Oracle
ImportError: DLL load failed: The specified module could not be found.

He comprobado mis variables de entorno, y he re-instalado cx_Oracle un par de veces, pero no puedo hacerlo funcionar… hice un poco de investigación acerca de este problema y estoy un poco atascado aquí, no entiendo por qué se está trabajando bien en mi ordenador, pero no en esta estación de trabajo remota (la única diferencia es que esta estación de trabajo remoto es una máquina virtual).

¿Alguien tiene una idea sobre lo que podría ser el problema?

Ejecución de Dependencia Walker en ambos cx_oracle.pyd (en mi ordenador en el que se trabaja muy bien y en la estación de trabajo remota donde cx_oracle no funciona), la única diferencia son los dll MSVCR100 amd MSVCR90 que no se encuentran en mi estación de trabajo remota.

Tengo las siguientes variables de entorno de instalación:

  • C:\Oracle as ORACLE_BASE
  • C:\Oracle\instantclient_12_1 como ORACLE_HOME
  • C:\Oracle\instantclient_12_1 añadido a la «Ruta» de la variable

Ambas máquinas son de 64 bits, Windows 7

Estoy ejecutando Python 2.7.5

He descomprimido instantclient-basic-nt-12.1.0.1.0 en C:\Oracle\instantclient_12_1

He instalado cx_Oracle-5.1.2-11g.win32-py2.7s

En la estación de trabajo remota, sys.path me da :

‘C:\Python27\Lib\idlelib’, ‘C:\Windows\system32\python27.zip’, ‘C:\Python27\DLLs’, ‘C:\Python27\lib’, ‘C:\Python27\lib\plat-win’, ‘C:\Python27\lib\lib-tk’, ‘C:\Python27’, ‘C:\Python27\lib\site-packages’


EDITAR 1

En el post anterior, todos los archivos (Python 2.7, cx_Oracle paquete, Oracle Instant client) fueron para sistemas de 32 bits.
He descargado la misma versión de los archivos para los sistemas de 64 bits y todo está funcionando bien en mi estación de trabajo remota ahora.

EDITAR 2

Básicamente, la solución consistió en que para mí en volver a instalar todo (Python, Oracle Instant Client y cx_Oracle) para sistemas de 64 bits en lugar de 32 bits de los sistemas.

Para resumir, este era mi problema y cómo lo tengo solucionado:
1) he instalado Cx_Oracle (de 32 bits de windows paquete de instalación) y Oracle Instant Client (32-bit) y estaba funcionando perfectamente en mi sistema de 64 bits se ejecuta python 2.7.5 para sistemas de 32 bits
2) hice la misma cosa exactamente en una Máquina Virtual (que se ejecuta un sistema de 64 bits) y no fue a trabajar
3) Para que funcione en la máquina virtual, he re-instalado todo para sistemas de 64 bits (python, Instant Client, Cx_Oracle) y que finalmente se trabajó

http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
http://sourceforge.net/projects/cx-oracle/files/5.1.2/

También, asegúrese de descargar la cx_Oracle Instantánea y el cliente correspondiente a su versión de DB (11g en mi caso).
Espero que esto ayude.

Tengo el mismo problema. Ha solucionado este problema?
Véase mi EDICIÓN número 2.
Edit 2 funcionado para mí: Desinstalar todos los python y cx_oracle instala Obtener 64bit instantánea de cliente y añadir el directorio a la RUTA de Instalación de 64 bits de python y cx_oracle

OriginalEl autor user3722440 | 2014-06-09

2 Comentarios

  1. 4

    Estoy ejecutando Oracle express en win 7 y python35(64 bits) .

    Esto es cómo me las arreglé para conseguir mi django-1.9 conectarse a oracle.

    1. Instalado cx_Oracle el uso de pip (pip3 install cx_Oracle) en lugar de descargar el archivo msi del pypi sitio web.

    2. Descargado de Oracle instant client versión de 64 bits de (http://www.oracle.com/technetwork/topics/winx64soft-089540.html) y se extrae a c:\oraclexe (sólo para mantener todos oracle cosas en un solo lugar)

    3. Creados por debajo de variables de entorno:

      set ORACLE_BASE=C:\oraclexe
      set ORACLE_HOME=C:\oraniclexe\app\oracle\product\11.2.0\server
      set PATH=C:\oraclexe\instantclient_11_2;%PATH%

    4. Actualizado mi django settings.py

    DATABASES = {
    'default':{
    'ENGINE':'django.db.backends.oracle'
    'NAME':'XE',
    'USER':'hr',
    'PASSWORD':'hr',
    'HOST':'localhost',
    'PORT':'1521',
    },
    }

    Eso es todo. Después, mi django migraciones funcionaba bien

    OriginalEl autor Jaya Nandan

  2. -1

    En mi caso acabo de pasar el ORACLE_HOME antes de Python en la variable path y funciona para mí.

    OriginalEl autor m.tariqsiddiqui

Dejar respuesta

Please enter your comment!
Please enter your name here