1

cx_Oracle 5.0.4 を使用すると、python コンソールから接続でき、apache+django+mod_wsgi で動作します

しかし、cx_Oracle 5.1.1 を更新すると、Python コンソールから接続できますが、同じコードは apache+django+mod_wsgi では機能しません。

File "C:\Python27\lib\site-packages\django\db\backends\oracle\base.py", line 24, in
raise ImproperlyConfigured("Error loading cx_Oracle module: %s" % e)
TemplateSyntaxError: Caught ImproperlyConfigured whileレンダリング: cx_Oracle モジュールのロード中にエラーが発生しました: DLL のロードに失敗しました: 指定されたモジュールが見つかりませんでした。

PS: python 2.7
PSS: MSVC 2008 Redistributable x86 をインストールしました

4

1 に答える 1

1

解決策も必要です。

WinXP (Apache 2.2.21/ mod_wsgi 3.3/ python 2.7.2/ cx_Oracle 5.xx) でも同じ設定をしています。cx_Oracle 5.1 も同じエラーで失敗することがわかりました。5.0.4 のみが動作します。

5.0.4 から 5.1 で行われた変更のリストを次に示します。

  1. UNICODE モードのサポートを削除し、文字列が渡される可能性があるすべての場所で Unicode を通過できるようにします。これは、Python 3.x でも NLS_LANG 環境変数の値を使用して、文字列が Oracle に渡されることを意味します。これにより、UNICODE モードを使用することで発見された一連の問題が解消され、たとえば接続文字列や SQL ステートメントで Unicode を使用できないという Python 2.x の不要な制限も解消されました。
  2. 名前付き型を介して空のオブジェクト変数を作成するためのサポートが追加されました。これは、完全なオブジェクト サポートを追加するための最初のステップです。
  3. Python 3.2 のサポートが追加されました。
  4. x86_64 システムで使用される lib64 のアカウント。パッチを提供してくれた Alex Wood に感謝します。
  5. スコープ外に出てカーソルが解放される前に cursor.close() を呼び出す場合の潜在的な問題を解決します。
  6. AIX5 では、Oracle 10g Release 2 の下で OCIPing が利用できないように見えるため、コンパイルの問題を回避してください。Pierre-Yves Fontaniere にパッチを提供していただきありがとうございます。
  7. 一時 LOB のリークを避けるために、各フェッチの前に一時 LOB を解放してください。最初のパッチを提供してくれた Uwe Hoffmann に感謝します。
于 2011-11-16T20:17:22.430 に答える