Tenho uma situação muito parecida com a de ImportError: Falha no carregamento da DLL:% 1 não é um aplicativo Win32 válido , mas a resposta não está funcionando para mim.
Meu código Python diz:
import cv2
Mas essa linha lança o erro mostrado no título desta pergunta.
Tenho o OpenCV instalado C:\lib\opencv
nesta máquina de 64 bits. Estou usando Python de 64 bits.
Meu variável PYTHONPATH: PYTHONPATH=C:\lib\opencv\build\python\2.7
. Esta pasta contém cv2.pyd
e isso é tudo.
Minha variável PATH: Path=%OPENCV_DIR%\bin;...
esta pasta contém 39 arquivos DLL, como opencv_core246d.dll
.
OPENCV_DIR tem este valor: OPENCV_DIR=C:\lib\opencv\build\x64\vc11
.
A solução em ImportError: Falha no carregamento da DLL:% 1 não é um aplicativo Win32 válido que diz para adicionar "o novo caminho dos binários opencv ( C:\opencv\build\bin\Release
) à variável de ambiente PATH do Windows". Mas, como mostrado acima, já tenho a pasta de binários do OpenCV ( C:\lib\opencv\build\x64\vc11\bin
) em meu PATH. E minha instalação do OpenCV não tem nenhuma pasta Release (exceto por uma vazia em build / java).
Alguma ideia do que está acontecendo de errado? Posso dizer ao Python para rastrear detalhadamente o processo de carregamento? Exatamente que DLL ele está procurando?
Obrigada lars
EDITAR:
Acabei de notar que, de acordo com http://www.dependencywalker.com/ , o cv2.pyd
in C:\lib\opencv\build\python\2.7
é de 32 bits, enquanto a máquina e o Python que estou executando são de 64 bits. Será esse o problema? E em caso afirmativo, onde posso encontrar uma versão de 64 bits do cv2.pyd?
PYTHONPATH
costumava conter as entradas que a instalação da biblioteca SimpleCV deixou lá. Apesar de já ter desinstalado o SimpleCV, PYTHONPATH
ele não foi restaurado e estava apontando para alguns diretórios com versões conflitantes do OpenCV deixadas pela instalação do SimpleCV. Solução: limpe o PYTHONPATH
.