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

Implantando o cx_Oracle em várias versões do Oracle Client


Se você quiser construir várias versões do cx_Oracle (por exemplo:cx_Oracle10g, cx_Oracle11g, etc.), você precisará modificar o script setup.py do cx_Oracle. A última etapa do script é uma chamada para setup(); o primeiro parâmetro é o nome do módulo a ser construído. Tudo o que você precisa fazer é alterar "cx_Oracle" para "cx_Oracle" + ver , onde ver é 10g , 11g , etc. Crie vários scripts e codifique-os ou adicione outro parâmetro a setup.py para selecioná-lo dinamicamente.

Claro, uma vez que você tenha isso, você precisa de um mecanismo para carregar o módulo correto em tempo de execução. Para fazer isso, você deve criar seu próprio cx_Oracle módulo que tem um __init__.py arquivo que se parece com isso:
try:
  from cx_Oracle9g import *
except ImportError:
  try:
    from cx_Oracle10g import *
  except ImportError:
    try:
      from cx_Oracle11g import *

Tudo o que você precisa fazer é enviar seu cx_Oracle personalizado módulo mais o cx_OracleXg correto módulo com sua aplicação.

Como alternativa, você pode ter seu cx_Oracle personalizado módulo verifica dinamicamente para cada biblioteca de cliente Oracle disponível (9g, 10g, 11g, etc) e depois importa apenas o cx_OracleXg correspondente correto módulo. Nesse caso, você só precisa enviar um único binário, contendo seu cx_Oracle personalizado módulo mais todos os cx_OracleXg módulos.