Oracle
 sql >> Database >  >> RDS >> Oracle

Impossibile trovare il modulo 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

Puoi scoprire arch (32 o 64 bit) per:

  • python eseguendo semplicemente python in modalità interattiva sulla riga di comando.
  • cx_Oracle:guarda il nome del file scaricato.
  • Cliente Oracle:
    • esegui sqlplus che fa parte del pacchetto client
    • avvia Task Manager e verifica se sqlplus.exe ha "*32" accanto (=32 bit) o ​​meno (=64 bit)
    • se non hai sqlplus, usa dumpbin /headers oraocciXX.dll
  • Se stai usando POSIX probabilmente lo sapresti già. Usa file oraocciXX.so

Infine, se ancora non capisci, ecco davvero le istruzioni per i manichini:

  • Assicurati di aver installato le versioni a 32 bit di python, cx_Oracle e Oracle Instant Client. Questi potrebbero anche essere a 64 bit, ma devono essere gli stessi per tutti e 3. Impossibile combinare e abbinare. Collegamenti:
    • Oracle Instant Client Diciamo che è installato in C:\ProgFiles\OraClient\11_2
    • cx_Oracle
    • Pitone
  • Finestre:
    • set PATH=%PATH%;C:\ProgFiles\OraClient\11_2
  • POSIX (Linux/Unix/Solaris...) <-- Non testato..
    • export LD_LIBRARY_PATH=/path/to/your/32bit/oraocciXX.so
    • (64 bit) export LD_LIBRARY_PATH64=/path/to/your/64bit/oraocciXX.so
  • esegui path-to-python/python.exe -c "import cx_Oracle" per verificare se la tua configurazione funziona o meno.
    • se stampa
    • niente:allora ha successo.
    • ImportError: DLL load failed: The specified module could not be found :allora oraocciXX non si trova. Imposta le env vars correttamente.
    • ImportError: DLL load failed: %1 is not a valid Win32 application :Hai una mancata corrispondenza di 32/64 bit.