Om du vill bygga flera cx_Oracle-versioner (t.ex.:cx_Oracle10g, cx_Oracle11g, etc.) måste du ändra skriptet cx_Oracle setup.py. Det sista steget i skriptet är ett anrop till setup()
; den första parametern är namnet på modulen som ska byggas. Allt du behöver göra är att ändra "cx_Oracle"
till "cx_Oracle" + ver
, där ver är 10g
, 11g
, etc. Skapa antingen flera skript och hårdkoda det, eller lägg till en annan parameter i setup.py
för att välja det dynamiskt.
Naturligtvis, när du väl har det, behöver du en mekanism för att ladda rätt modul vid körning. För att göra det vill du skapa din egen cx_Oracle
modul som har en __init__.py
fil som ser ut ungefär så här:
try:
from cx_Oracle9g import *
except ImportError:
try:
from cx_Oracle10g import *
except ImportError:
try:
from cx_Oracle11g import *
Allt du behöver göra är att skicka din anpassade cx_Oracle
modul plus rätt cx_OracleXg
modul med din ansökan.
Alternativt kan du ha din anpassade cx_Oracle
modul kontrollera dynamiskt för varje tillgängligt Oracle-klientbibliotek (9g, 10g, 11g, etc) och importera sedan bara korrekt matchande cx_OracleXg
modul. I det här fallet behöver du bara skicka en enda binär som innehåller din anpassade cx_Oracle
modul plus alla cx_OracleXg
moduler.