Jeśli chcesz zbudować wiele wersji cx_Oracle (np.:cx_Oracle10g, cx_Oracle11g, itp.), musisz zmodyfikować skrypt setup.py cx_Oracle. Ostatnim krokiem w skrypcie jest wywołanie setup()
; pierwszy parametr to nazwa modułu do zbudowania. Wszystko, co musisz zrobić, to zmienić "cx_Oracle"
do "cx_Oracle" + ver
, gdzie ver to 10g
, 11g
itp. Utwórz kilka skryptów i zakoduj je na stałe lub dodaj kolejny parametr do setup.py
aby wybrać go dynamicznie.
Oczywiście, gdy już to zrobisz, potrzebujesz mechanizmu, który załaduje właściwy moduł w czasie wykonywania. Aby to zrobić, będziesz chciał stworzyć swój własny cx_Oracle
moduł, który ma __init__.py
plik, który wygląda mniej więcej tak:
try:
from cx_Oracle9g import *
except ImportError:
try:
from cx_Oracle10g import *
except ImportError:
try:
from cx_Oracle11g import *
Wszystko, co musisz zrobić, to wysłać swój niestandardowy cx_Oracle
moduł plus poprawny cx_OracleXg
moduł z Twoją aplikacją.
Alternatywnie możesz mieć swój niestandardowy cx_Oracle
moduł dynamicznie sprawdza każdą dostępną bibliotekę klienta Oracle (9g, 10g, 11g itd.), a następnie importuje tylko poprawne pasujące cx_OracleXg
moduł. W takim przypadku wystarczy wysłać jeden plik binarny zawierający niestandardowy cx_Oracle
moduł plus wszystkie cx_OracleXg
moduły.