sql >> Base de Datos >  >> RDS >> Oracle

No se pudo encontrar el módulo de Python cx_Oracle

# - This import requires appropriate oraocciXX.dll to be available in PATH (on windows)
#   (Probably LD_LIBRARY_PATH or LD_LIBRARY_PATH64 on POSIX)
#     where XX is the oracle DB version, e.g. oraocci11.dll for Oracle 11g.
# - This dll is part of the Oracle Instant client pkg available here:
#     http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
# - Also ensure that python, cx_Oracle and Oracle Client are of same arch (32 or 64-bit)
#
import cx_Oracle

Puede encontrar arch (32 o 64 bits) para:

  • python con solo ejecutar python en modo interactivo en la línea de comandos.
  • cx_Oracle:mire el nombre del archivo descargado.
  • Cliente de Oracle:
    • ejecutar el sqlplus que es parte de su paquete de cliente
    • inicie el Administrador de tareas y vea si sqlplus.exe tiene "*32" al lado (=32 bits) o no (=64 bits)
    • si no tiene sqlplus, use dumpbin /headers oraocciXX.dll
  • Si está utilizando POSIX, probablemente ya lo sepa. Usa el file oraocciXX.so

Finalmente, si todavía no entiendes, aquí hay instrucciones para tontos:

  • Asegúrese de haber instalado versiones de 32 bits de python, cx_Oracle y Oracle Instant Client. Estos también podrían ser de 64 bits, pero deben ser iguales para los 3. No se pueden mezclar y combinar. Enlaces:
    • Oracle Instant Client Digamos que está instalado en C:\ProgFiles\OraClient\11_2
    • cx_Oracle
    • Pitón
  • Windows:
    • set PATH=%PATH%;C:\ProgFiles\OraClient\11_2
  • POSIX (Linux/Unix/Solaris...) <-- Sin probar...
    • export LD_LIBRARY_PATH=/path/to/your/32bit/oraocciXX.so
    • (64 bits) export LD_LIBRARY_PATH64=/path/to/your/64bit/oraocciXX.so
  • ejecutar path-to-python/python.exe -c "import cx_Oracle" para probar si su configuración funciona o no.
    • si se imprime
    • nada:entonces tiene éxito.
    • ImportError: DLL load failed: The specified module could not be found :entonces no se encuentra oraocciXX. Configure las variables env correctamente.
    • ImportError: DLL load failed: %1 is not a valid Win32 application :Tiene una discrepancia de 32/64 bits.