私がやったことは次のとおりです。
instantclient-basic-nt-11.2.0.3.0.Zip
をダウンロードして解凍し、C:\Program Files\Oracle\instantclient_11_2
に入れました。Path
環境変数に追加しました。Oracle_HOME
を作成しました。cx_Oracle-5.1.2-11g.win32-py2.7.msi
をインストールしました。そして、import cx_Oracle
を実行すると、私が得るのは
Traceback (most recent call last):
File "<string>", line 2, in <module>
ImportError: DLL load failed: This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem.
明らかにcx_Oracleをアンインストール/再インストールしたことが何度かありましたが、実際には何も役に立たないようです。誰でもこれを修正する方法の手がかりを提供できますか?
[〜#〜] update [〜#〜]
Dependency Walkerを実行すると、多くの問題が発生します。ただし、最初に不足している.dll(msvcr80.dll)は、実際にはpresent in C:\WINDOWS\WinSxS\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.91_x-ww_0de56c07
です。
同じ問題を抱えている他の人を助けるために:
このエラーは、モジュールのインポート中にいくつかのDLLの間で32-64ビットの不一致について通知します。可能性は次のとおりです。
Cx_Oracleは、マシンにインストールする必要がある標準のOracleクライアント(OCIレベル)を使用することに注意してください。 [〜#〜] path [〜#〜]を含む複数の場所でoci.dllを検索します。間違ったバージョンのクライアントのoci.dllが見つかった場合、エラーが表示されます。
[〜#〜] path [〜#〜]環境変数でこのエラーチェックパスリストを取得した場合。間違ったバージョンのOracleクライアントのBINフォルダーへのパスが含まれている可能性があります。複数のクライアントがある場合、[〜#〜] path [〜#〜]で適切なクライアントを指定するか、適切なクライアントをインストールします。
注: Oracle_HOMEはcx_Oracleには影響しません。私の場合、PATHの変更のみが役立ちました。ルーベンのソリューションは、項目3(「この同じパスを「パス」環境変数に追加する」)が原因で機能すると思います。
Win7(64ビット)でpython35 64ビットとOracle Expressを使用しています。 pip3を使用してcx_Oracleをインストールしました(pip3 install cx_Oracle
)pypiからインストーラーをダウンロードする代わりに。
私は同じ問題に直面しました。
上記のガイドラインに従って解決しましたが、32ビットクライアントの代わりに、64ビットバージョンのインスタントクライアント(instantclient-basic-windows.x64-11.2.0.4.0.Zip)を http:/ /www.Oracle.com/technetwork/topics/winx64soft-089540.html 。
次に、それをc:\ oraclexeに抽出しました。そして、これらの環境変数を追加しました
set Oracle_BASE=C:\oraclexe
set Oracle_HOME=C:\oraclexe\app\Oracle\product\11.2.0\server
set PATH=C:\oraclexe\instantclient_11_2;%PATH%
そして、Django migrateコマンド:
python manage.py migrate
それは素晴らしかった
以下の設定で同じImportError
が発生しました:
msvcr100.dll
ファイルを<Oracle_instant_client_dir>
にコピーして解決しました
簡単な方法:
cx_Oracle-5.1.3-11g.win32-py2.7.exe
がありますinstantclient_12_1
をダウンロードして解凍し、C:\Python27
に移動しますC:\Python27\instantclient_12_1
を追加しますこの問題もあり、PATH環境変数でOracleの前に無効な/到達不能なUNCパスがある場合、cx_Oracle(少なくとも5.1.2の時点で)のインポートは(同じエラーで)失敗するようです。
UNCパス(Oracleとは無関係)を修正して、問題を解決しました。
Condaをパッケージマネージャーとして使用している場合、DLLを発行してOracle_instantclientをインストールするためのconda install Oracle-instantclient
。これにより、Oracleのインスタントクライアントを手動でインストールしても修正できなかった依存関係が修正されました。
私が従ったステップ:
スマートクライアントinstantclient-basic-windows.x64-12.1.0.2.0.Zipをダウンロードしました
解凍して#your directory#\ instantclient_12_1にコピーしました
上記のディレクトリにはdllが含まれています
PATH変数に#your directory#\ instantclient_12_1を追加し、作成したenv変数Oracle_HOME = #your directory#\ instantclient_12_1
Cx_Oracle-5.2.1-11g.win-AMD64-py2.7.exeをダウンロードしてインストールします
オープンアイドルタイプインポートcx_Oracle
これは古い投稿であることは知っていますが、今日はこの問題があり、解決策はありませんでした。私は、これが今と同じ問題を抱えている他の人たちのために働くことができると思います。
Pythonバージョン:2.7.15(64ビット)cx_Oracleバージョン:6.4.1 Oracle Instant Client:18.3
正しい順序でevryの手順を実行しても、次のエラーが表示され続けました。
cx_Oracle.DatabaseError:DPI-1047:Oracleクライアントライブラリをロードできません
Oracle Instant Clientバージョンを12.1にダウングレードすることで解決しました
windowsでAnacondaを使用している場合:
conda install cx_Oracle
あなたのcmdで
->これ
この質問に2度目に来たように、私がやったことを投稿する必要があると感じています。
私は使用しています:
Pythonおよびcx_Oracle 64ビットのインストールに成功しませんでした。
32ビットバージョンを試して、@ robの回答手順に従った場合にのみ機能しました
DLL Windowsマシンでロードに失敗しました。Oracleクライアントをインストールし、変数を設定し、cx_Oracle-5.1.3-11g.win32-py2.7.exeファイルを実行しました。
しかし、cx_Oracleをeasy_setupでインストールすると、問題は修正されました。
C:\Python27\Scripts\easy_install.exe cx_Oracle-5.1.3-11g.win32-py2.7.exe