我正在尝试使用tomcat加载cx_Oracle。
从python加载工作正常,但对于jython我得到“找不到模块”。我的system.path包含包含cx_Oracle.so。
的site-packages我是jython的新手,我没有时间熟悉所有变量,但我相信我已经输出了所有必要的环境变量,但显然有些不妥。
答案 0 :(得分:4)
Ben,并非所有在CPython实现中使用Python的模块都可以用于其他实现。如果此类模块使用系统特定的调用,或绑定到某些.dll / .so文件,则它将无法在其他Python实现上运行。 cx_Oracle是一个这样的模块:它绑定到Oracle客户端(各种Oracle版本和各种操作系统都有cx_Oracle版本)。
如果您想从Jython访问Oracle,我认为您应该使用JDBC驱动程序。然后,您可以使用JDBC调用,或使用zxJDBC
Jython模块,通过DB API调用使JDBC驱动程序可用。我在可以使用CPython和Jython的程序中使用JDBC(带zxJDBC
)和cx_Oracle。要查看它的实际情况,请查看我的dump Oracle db schema to text