Tomcat 上の jython で cx_Oracle を実行する
質問
Tomcatを使用してcx_Oracleをロードしようとしています。
Python からのロードは正常に機能しますが、JYTHON では「モジュールが見つかりません」というメッセージが表示されます。私の system.path には、cx_Oracle.so を含むサイト パッケージが含まれています。
私は jython を初めて使用するため、すべての変数に慣れる時間がありませんでしたが、明らかに何かが間違っていますが、必要な環境変数はすべてエクスポートされていると思います。
解決
ベン、CPython 実装で Python で動作するすべてのモジュールが他の実装でも動作するわけではありません。そのようなモジュールがシステム固有の呼び出しを使用する場合、または何らかの .dll/.so ファイルにバインドされる場合、他の Python 実装では機能しません。cx_Oracle は、次のようなモジュールの 1 つです。Oracle クライアントにバインドされます (さまざまな Oracle バージョンおよびさまざまなオペレーティング システムに対応する cx_Oracle バージョンがあります)。
JythonからOracleにアクセスしたい場合はJDBCドライバーを使用すると良いと思います。その後、JDBC 呼び出しを使用するか、 zxJDBC
DB API 呼び出し経由で JDBC ドライバーを利用できるようにする Jython モジュール。私は両方のJDBCを使用しました( zxJDBC
) および cx_Oracle を CPython および Jython から動作できるプログラムに含めます。実際の動作を確認するには、私のレシピを参照してください Oracle DBスキーマをテキストにダンプします