web-dev-qa-db-ja.com

ImportError:DLL load failed:%1は有効なWin32アプリケーションではありません。しかしDLLはそこにあります

ImportError:DLL loadが失敗しました:%1は有効なWin32アプリケーションではありません 。私のために働いています。

私のPythonコードはこう言う:

import cv2

しかし、その行はこの質問のタイトルに示されているエラーを投げます。

私はこの64ビットマシンのC:\lib\opencvにOpenCVをインストールしました。私は64ビットのPythonを使っています。

私のPYTHONPATH変数:PYTHONPATH=C:\lib\opencv\build\python\2.7。このフォルダにはcv2.pydが含まれています。

私のPATH変数:Path=%OPENCV_DIR%\bin;...このフォルダーには、opencv_core246d.dllなどの39 DLLファイルが含まれています。

OPENCV_DIRの値はOPENCV_DIR=C:\lib\opencv\build\x64\vc11です。

ImportError:DLL loadでの解決策が失敗しました:%1は有効なWin32アプリケーションではありません Windowsに新しいopencvバイナリパス(C:\opencv\build\bin\Release)を追加するように指示しますPATH環境変数 "#:。しかし上に示したように、私はすでに自分のPATHにOpenCVバイナリフォルダ(C:\lib\opencv\build\x64\vc11\bin)を持っています。そして私のOpenCVインストールにはReleaseフォルダがありません(build/Javaの下の空のフォルダを除く)。

何が問題になっているのですか?ロード処理を冗長にトレースするようにPythonに指示できますか?正確には何のDLLですか?

ありがとう、ラース

編集:

http://www.dependencywalker.com/ によると、cv2.pydC:\lib\opencv\build\python\2.7は32ビットですが、私が実行しているマシンとPythonは64ビットそれが問題でしょうか。そしてもしそうなら、どこに私はcv2.pydの64ビットバージョンを見つけることができますか?

97
LarsH

Python拡張パッケージ用の非公式Windowsバイナリ

あなたはここからpythonライブラリを見つけることができます

76
Kill Console

使用しているPythonのバージョンも64ビットかどうかを確認してください。そうでない場合は、それが問題になる可能性があります。あなたは32ビットのpythonバージョンを使用しているでしょうし、OPENCVライブラリ用に64ビットのバイナリをインストールしているでしょう。

36
Clive Verghese

うわー、私はこの問題のためのさらに別のケースを見つけました。上記のどれもうまくいきませんでした。最終的に私はロードされているものをイントロスペクトするためにpythonの能力を使いました。 Python 2.7ではこれは次のようになります。

import imp
imp.find_module("cv2")

これはAnacondaのDLLディレクトリにある、予期せぬ "cv2.pyd"ファイルで、アンインストールやインストールを何度も試みることはできませんでした。 Pythonが最初にそこを見ていて、私の良いインストールを見つけられませんでした。そのcv2.pydファイルを削除して再度imp.find_module( "cv2")を試してみると、pythonがすぐに正しいファイルを見つけてcv2が動き始めました。

他の解決策がどれもうまくいかない場合は、pythonのイントロスペクションを使ってpythonがロードしようとしているファイルを確認してください。

14

私はちょうどこの問題を抱えていました、それは私がopencvファイルのx64バージョンを使用していたという理由だけでそれがそれを変えました。 x86を試してみて、それはうまくいった。

6
olive_tree

私の場合、私は64ビットのPythonを持っています、そしてそれは間違ったバージョンであるlxmlでした - 私はそれのx64バージョンも使っていたはずです。私はここにlxmlの64ビット版をダウンロードすることによってこれを解決しました:

https://pypi.python.org/pypi/lxml/3.4.1

lxml-3.4.1.win-AMD64-py2.7.exe

これはイライラする問題への最も簡単な答えでした。

6
Amalgovinus

あなたのビルドシステム(私の場合はCMake)が<name>.dllから<name>.pydにファイルをコピーした場合、元のファイルが実際にはdllでなかったなら、このエラーを受け取るでしょう。私の場合、共有ライブラリの構築は無効になっているので、基礎となるファイルは実際には*.libです。

このエラーを発見したのは、 DependencyWalkerpydファイルをロードし、それが無効であることを発見したためです。

cv2.pydファイルを/opencv/build/python/2.7/x86フォルダーから/x64にコピーするのではなく、C:/Python27/Lib/site-packegesフォルダーからコピーしました。私はここで提供されている 残りの指示に従った

検証されていない他の誰かによって追加されたもの:私はまたファイルcv2.pydをフォルダC:/Python27/Lib/site-packages/cv2にコピーします。できます。

2

私は同じ問題を抱えていました。これが私がしたことです:

  1. 私は ここからpywin32 Wheelファイルをダウンロードしました

  2. pywin32モジュールをアンインストールしました。アンインストールするには、コマンドプロンプトで次のコマンドを実行します。

    pip uninstall pywin32

  3. その後、pywin32を再インストールしました。インストールするには、pywin32ホイールファイルと同じディレクトリにあるコマンドプロンプトを開きます。その後、以下のコマンドを実行してください。

    pip install <Name of the wheel file with extension>ホイールファイルは次のようになります。piwin32-XXX-cpXX-one-win32.whl

それは私にとって問題を解決します。試してみるのもいいかもしれません。それがあなたにとってもうまくいくことを願っています。

2

私にとって問題なのは、同じEclipseプロジェクトで異なるバージョンのPythonを使用していたことです。私の設定はプロジェクトプロパティ実行設定のPythonと一致していませんバージョン.

プロジェクト>プロパティ> PyDevでは、私はインタプリタをPython2.7.11に設定しました。

Run Configurations> Interpreterでは、Default Interpreterを使用していました。これをPython 2.7.11に変更することで問題は解決しました。

1
Al Lelopath

32ビットWindowsインストーラーを使用して私のシステムに異なるバージョンの2.7.xのPythonをアンインストールし、再インストールしたときにも同じ問題に直面しました。私はほとんどのimportステートメントで同じエラーを受け取りました。私は新しくインストールしたPythonをアンインストールし、64ビットのWindowsインストーラーをダウンロードし、そして再びPythonを再インストールしました。これがお役に立てば幸いです。

1
user3233042

最初にcv2.pyd/opencv/build/python/2.7/x86からC:/Python27/Lib/site-packegesにコピーしました。エラーは

"RuntimeError:モジュールはAPIバージョン9に対してコンパイルされましたが、このバージョンのnumpyは7です"

それから私はnumpy-1.8.0-win32-superpack-python2.7.exeをインストールして、opencvはうまく働きます。

>>> import cv2
>>> print cv2.__version__
2.4.13
0
alireza

それは非常に単純な解決策を持っています。 opencvの場所をインストールした後

cv2.pydからC:\opencv\build\python\2.7\ **x64**へのC:\Python27\Lib\site-packages

代わりに、cv2.pydからC:\opencv\build\python\2.7\ **x86**C:\Python27\Lib\site-packagesを配置してください。

0
sharat kanthi
  1. あなたがpython 2.7.12以下のバージョンをインストールしていることを確認してくださいそうでなければあなたは間違いなくこのエラーを取得します。
  2. OSが64ビットの場合、Oracleクライアントが64ビットでインストールされていることを確認してください。
  3. Python 2.7用Microsoft Visual C++コンパイラが64ビットの場合は64ビット、32ビットの場合は32ビットであることを確認してください。注: - OSが64ビットの場合は64ビットの全パッケージをインストールするか、Osが32ビットの場合は32ビットパッケージをインストールしてください。
0
Ranjan

opencv公式 または 非公式 のサイトからインストールできます。

Anacondaを使用している場合は、 this の質問と this の問題を参照してください。

0
Ramesh-X