Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Módulo Python cx_Oracle não foi encontrado

# - 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

Você pode descobrir arch (32 ou 64 bits) para:
  • python apenas executando o python no modo interativo na linha de comando.
  • cx_Oracle:veja o nome do arquivo baixado.
  • Cliente Oracle:
    • execute o sqlplus que faz parte do seu pacote de cliente
    • inicie o Gerenciador de Tarefas e veja se sqlplus.exe tem "*32" próximo a ele (=32 bits) ou não (=64 bits)
    • se você não tiver sqlplus, use dumpbin /headers oraocciXX.dll
  • Se você estiver usando POSIX, provavelmente já sabe. Use file oraocciXX.so

Finalmente, se você ainda não entendeu, aqui é realmente para instruções de manequins:
  • Verifique se você instalou versões de 32 bits do python, cx_Oracle e Oracle Instant Client. Estes também podem ser de 64 bits, mas devem ser iguais para todos os 3. Não é possível misturar e combinar. Links:
    • Oracle Instant Client Digamos que ele esteja instalado em C:\ProgFiles\OraClient\11_2
    • cx_Oracle
    • Píton
  • Janelas:
    • set PATH=%PATH%;C:\ProgFiles\OraClient\11_2
  • POSIX (Linux/Unix/Solaris...) <-- Não testado..
    • export LD_LIBRARY_PATH=/path/to/your/32bit/oraocciXX.so
    • (64 bits) export LD_LIBRARY_PATH64=/path/to/your/64bit/oraocciXX.so
  • execute path-to-python/python.exe -c "import cx_Oracle" para testar se sua configuração está funcionando ou não.
    • se for impresso
    • nada:então é bem-sucedido.
    • ImportError: DLL load failed: The specified module could not be found :então oraocciXX não foi encontrado. Configure as env vars corretamente.
    • ImportError: DLL load failed: %1 is not a valid Win32 application :você tem uma incompatibilidade de 32/64 bits.