どのバージョンのWindowsを実行していますか? 32ビットですか64ビットですか?
Oracle Instant Clientは、32
ですか。 または
Pythonのインストールは
あなたのcx_oracleは正しいバージョンですか? 32
または
MSVCR90.dllは、Microsoft Visual C ++2008SP1再頒布可能パッケージの一部です。
32ビットバージョンが利用可能
IESHIMS.dllは、C:\Program Files\Internet Explorer\Ieshims.dll
にあります。 (32ビットWindowsロケーションまたは64ビットWindowsロケーション)またはC:\ Program Files \ Internet Explorer(x86)\ Ieshims.dll`(64ビットWindows上の32ビットWindowsロケーション)(ご使用のWindowsのバージョンがVista以降の場合)。
GPSVC.dllはC:\Windows\System32
に存在する必要があります 。
Dependency Walkerは、IEFrame.DLLを使用し、遅延ロードされるWindowsエラー報告によって使用されるため、これらの最後の2つのDLLが欠落していると報告します。つまり、実際には必要ない場合があります。
cx_oracleを正常にインポートするには、依存関係のバージョンが一致していることを確認する必要があることがわかりました。また、OracleクライアントのインストールがORACLE_HOME
と一致していることを確認する必要があります。 PATH変数に%ORACLE_HOME%/bin
が含まれている 、これは環境変数またはレジストリに設定されており、tnsnames.oraファイルはTNS_ADMINが設定されている値に存在します。 エマニュエルで述べられているように の答え、未設定のTNS_ADMIN設定のデフォルト値は%ORACLE_HOME%\network\admin
です。 。
また、絶対に必要な場合を除いて、Oracleインストーラのインスタントクライアントバージョンを使用することはめったにありません。他のバージョンとは異なり、Path、ORACLE_HOME、またはTNS_ADMINが正しく設定または維持されていることを常に確認しているわけではないため、tnsnames.oraおよびOCI.dllが正しく設定されていません。見つかった。同じマシンに複数のPythonバージョンまたはOracleバージョンがある場合、これはさらに複雑になります。
それらを明示的に設定するには、コントロールパネルの[システム]アイコン、[システムの詳細設定]タスク、[詳細設定]タブ、[環境]ボタンの下にある環境変数(ユーザーまたはシステム)を使用できます。
InterfaceError: Unable to acquire Oracle environment handle
、これは特にOCI.dllを解決しない場合に発生し、cx_Oracleは使用するOCI.dllを認識しません。通常、これはPATH変数にOCI.dllを含む2つ以上の検索ディレクトリが含まれているためです。
特に、PATHにOCI.dllのインスタントが1つだけ含まれていることを確認すると、インスタントクライアントのインストールまたはOracle11GXEインストールのいずれかで問題が解決するはずです。
Oracle 11G XEをインストールする前にインスタントクライアントをアンインストールしましたか?
以下をコマンドプロンプトに貼り付けます。
echo The current ORACLE_HOME is %ORACLE_HOME%
echo The current TNS_ADMIN is %TNS_ADMIN%
echo The current PATH is %PATH%
これらの変数の現在の値を確認するには。
その他のリソース