web-dev-qa-db-ja.com

ImportError:DLL load failed:%1は有効なWin32アプリケーションではありません

pythonでcv2をインポートし、次のエラーメッセージを取得しようとすると、この問題が発生します。

>>> import cv2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: DLL load failed: %1 is not a valid Win32 application.

これについては、パッケージのビット数がpythonパッケージと異なることが示唆されています。

ただし、実行しているものはすべて64ビットです。私はwin7 64ビットを使用しています。 winpython 2.7.3.3、64ビットのディストリビューションがあり、命令を here で指定して64ビットでopencvをコンパイルし、cv2を配置しました。 pythonのLib/site-packagesフォルダーにあるpyd dll。

残念ながら、32ビットバージョンのpythonを使用するという提案は、32ビットには大きすぎるnumpy配列を処理する必要があるため、もう機能していません。

ありがとう!!!

------更新

唯一欠けているのは、新しいopencvバイナリパス(C:\ opencv\build\bin\Release)をWindows PATH環境変数に追加し、Pythonを再起動することです。

すべてが正常に動作しているようです!

31
Francis

ImportErrorメッセージは、Win32への参照が原因で少し誤解を招きますが、問題は単にopencv DLLが見つからなかったことです。

この問題は、opencvバイナリのパスをWindows PATH環境変数に追加することで解決しました(例として、私のコンピューターでは、このパスはC:\ opencv\build\bin\Releaseです)。

24
Francis

Opencvの32ビットバージョンをインストールしてみてください。

4

または、64ビットを獲得するにはcv2モジュールを再構築する必要があります。

2
lukenothing

私はちょうどこれをヒットし、問題はパッケージがユーザーごとのパッケージディレクトリにある時点でインストールされていたことでした。 (Windowsの場合)別名%AppData%\ Python。だからPythonは最初にそこを探していて、古い32ビットバージョンの.pydファイルを見つけて、リストされたエラーで失敗しました。現時点では、pip 10.0.1にはアンインストール用の--userパラメーターはなく、インストール用のみです。

tl; dr%AppData%\ python\python27\site-packagesから古い.pydを削除すると、この問題は解決しました。

2
Mark Allen

必要なのは、cv2.pydファイルをx86フォルダー(C:\ opencv\build\python\2.7\x86 \など)からC:\ Python27\Lib\site-packages \、x64フォルダーからではありません。

お役に立てば幸いです。

このエラーが発生したとき、コンピューターがクラッシュして再起動した後、このエラーはなくなりました。 IDEを閉じてから再度開いてみてください。それでも機能しない場合は、コンピューターを再起動してください。このエラーが発生したときに、pycharmを再起動せずに、その時点でライブラリをインストールしました。

私のブラストされたコンピューターがランダムにクラッシュし続けるため、最初にテストするためにPyCharmを閉じないでください...そのコンピューターで作業していますが、少なくともこの問題は解決しました。

0
Nick Brady