Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Bereitstellen von cx_Oracle auf verschiedenen Versionen von Oracle Client

Wenn Sie mehrere cx_Oracle-Versionen erstellen möchten (z. B. cx_Oracle10g, cx_Oracle11g usw.), müssen Sie das Skript cx_Oracle setup.py ändern. Der letzte Schritt im Skript ist ein Aufruf von setup(); Der erste Parameter ist der Name des zu erstellenden Moduls. Sie müssen lediglich "cx_Oracle" ändern zu "cx_Oracle" + ver , wobei ver 10g ist , 11g usw. Erstellen Sie entweder mehrere Skripte und codieren Sie sie fest, oder fügen Sie setup.py einen weiteren Parameter hinzu um es dynamisch auszuwählen.

Sobald Sie das haben, brauchen Sie natürlich einen Mechanismus, um das richtige Modul zur Laufzeit zu laden. Dazu sollten Sie Ihr eigenes cx_Oracle erstellen Modul, das eine __init__.py hat Datei, die etwa so aussieht:

try:
  from cx_Oracle9g import *
except ImportError:
  try:
    from cx_Oracle10g import *
  except ImportError:
    try:
      from cx_Oracle11g import *

Alles, was Sie tun müssen, ist Ihr benutzerdefiniertes cx_Oracle zu versenden Modul plus dem korrekten cx_OracleXg Modul mit Ihrer Bewerbung.

Alternativ könnten Sie Ihr benutzerdefiniertes cx_Oracle verwenden -Modul dynamisch nach jeder verfügbaren Oracle-Client-Bibliothek (9g, 10g, 11g usw.) suchen und dann nur den korrekt passenden cx_OracleXg importieren Modul. In diesem Fall müssen Sie nur eine einzige Binärdatei versenden, die Ihr benutzerdefiniertes cx_Oracle enthält Modul plus das gesamte cx_OracleXg Module.