我有一个小脚本,试图连接到运行oracle数据库(11g)的服务器。在import os
import sys
import jpype
import jaydebeapi
if("JAVA_HOME" not in os.environ):
os.environ["JAVA_HOME"] = "c:\Program Files\Java\jdk1.8.0_45"
ODBC_DRIVER = os.path.join(os.path.dirname(os.path.abspath(__file__)), "ojdbc6.jar")
print("\tPYTHON VERSION", sys.version)
print("\tJAVA_HOME", os.environ["JAVA_HOME"])
print("\tDEFAULT JVM PATH", jpype.getDefaultJVMPath())
print("\tODBC_DRIVER", ODBC_DRIVER)
try:
jpype.startJVM(jpype.getDefaultJVMPath(), "-Djava.class.path={}".format(ODBC_DRIVER))
conn = jaydebeapi.connect("oracle.jdbc.driver.OracleDriver",
["jdbc:oracle:thin//192.168.10.33:1521", "", ""],
ODBC_DRIVER)
except Exception as e:
print(e)
sys.exit(-1)
sys.exit(0)
引发异常的输出:
^{pr2}$
作为参考,我主要使用连接到oracle数据库的小教程。他们的代码基本上是一样的。在
通过寻找解决方案,我发现python应该支持2.6.x版本中的close_fds
我不知道从哪儿开始找。在
有关jpype和jaydebaapi的更多信息:JayDeBeApi3 (1.3)
JPype1-py3 (0.5.5.2)
两者都是通过pip安装的。在