最近、リモートのOracleデータベースサーバーに接続するために、cx_Oracleモジュールをマシンにインストールしました。 (私の側にはOracleクライアントがありません)。
その後、スクリプトを実行するたびに失敗し、次のメッセージが出力されます。
ImportError:DLLロードに失敗しました:指定されたモジュールが見つかりませんでした。
Here に関連する投稿を見つけたので、pythonスクリプトが呼び出される側にOracleクライアントが必要かどうか疑問に思っています。
誰かが私を助けることができますか?前もって感謝します。
はい、Oracleクライアントをインストールする必要があります。
「cx_Oracleを使用するには、Oracleクライアント(またはサーバー)のインストールが必要であることに注意してください。クライアントの完全インストールに付属するツールが必要ない場合は、インストールがはるかに簡単なインスタントクライアントをインストールすることをお勧めします。 「」
[〜#〜]編集[〜#〜]インスタントクライアントへのリンク: http://www.Oracle.com/technetwork/ database/features/instance-client/index-097480.html
# - This import requires appropriate oraocciXX.dll to be available in PATH (on windows)
# (Probably LD_LIBRARY_PATH or LD_LIBRARY_PATH64 on POSIX)
# where XX is the Oracle DB version, e.g. oraocci11.dll for Oracle 11g.
# - This dll is part of the Oracle Instant client pkg available here:
# http://www.Oracle.com/technetwork/database/features/instant-client/index-097480.html
# - Also ensure that python, cx_Oracle and Oracle Client are of same Arch (32 or 64-bit)
#
import cx_Oracle
次のArch(32ビットまたは64ビット)を見つけることができます。
dumpbin /headers oraocciXX.dll
を使用してくださいfile oraocciXX.so
を使用する最後に、まだ理解できない場合は、ダミーの指示が必要です。
C:\ProgFiles\OraClient\11_2
にインストールされているとしましょうset PATH=%PATH%;C:\ProgFiles\OraClient\11_2
export LD_LIBRARY_PATH=/path/to/your/32bit/oraocciXX.so
export LD_LIBRARY_PATH64=/path/to/your/64bit/oraocciXX.so
path-to-python/python.exe -c "import cx_Oracle"
を実行して、セットアップが機能しているかどうかをテストします。ImportError: DLL load failed: The specified module could not be found
:その後oraocciXXが見つかりません。環境変数を正しく設定します。ImportError: DLL load failed: %1 is not a valid Win32 application
:32/64ビットの不一致があります。この問題を何日も解決しようとした後、私はset PATH=%PATH%:<insert Oracle home here>
私のためにトリックをしませんでした。 Windows XPシステムプロパティに移動し、Oracleホームを「システム変数」の下の「パス」変数に追加する必要がありました。
まだコメントできません: ただし、上記のuniquephaseの場合は、.exeと.dllのアクセス許可をチェックして、実行可能であることを確認してください。
それで、それを機能させるために私がしなければならなかったステップ。
ここからインスタントクライアントを解凍します。 ---(http://www.Oracle.com/technetwork/topics/winx64soft-089540.html
chmod + x * .exe * .dll(私はcygwinを使用しています)。
完全を期すために、cygwinを使用してpip経由でcx_Oracleをインストールすることはできませんでした。
そのため、標準のdist python(non-cygwin))を使用し、Windowsインストーラーを介してcx_Oracleをインストールする必要がありました。
また、f:/ opt/Instantclient_12_1(Oracle Instant Clientをインストールした場所)をWindowsパスに追加する必要がありました([システム]-> [高度なシステムプロパティ]-> [環境変数]-> [システム変数]を使用)。