如果要构建多个cx_Oracle版本(例如:cx_Oracle10g,cx_Oracle11g等),则需要修改cx_Oracle setup.py脚本。脚本的最后一步是对setup()
;的调用。第一个参数是要构建的模块的名称。您所需要做的就是将更"cx_Oracle"
改为"cx_Oracle" + ver
,其中ver是10g
,11g
等等。创建多个脚本并对其进行硬编码,或者添加另一个参数以setup.py
动态选择它。
当然,一旦掌握了这一点,就需要一种在运行时加载正确模块的机制。为此,您需要创建自己的cx_Oracle
模块,该模块的__init__.py
文件如下所示:
try:
from cx_Oracle9g import *
except ImportError:
try:
from cx_Oracle10g import *
except ImportError:
try:
from cx_Oracle11g import *
您需要做的就是随您的应用程序一起交付自定义cx_Oracle
模块以及正确的cx_OracleXg
模块。
或者,您可以让自定义cx_Oracle
模块动态检查每个可用的Oracle客户端库(9g,10g,11g等),然后仅导入正确的匹配cx_OracleXg
模块。在这种情况下,您只需要运送一个二进制文件,其中包含您的自定义cx_Oracle
模块以及所有cx_OracleXg
模块。