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 oPYTHONPATH
.Respostas:
Binários não oficiais do Windows para pacotes de extensão Python
você pode encontrar qualquer biblioteca python a partir daqui
fonte
Verifique se a versão do python que você está usando também é de 64 bits. Se não, esse poderia ser o problema. Você estaria usando uma versão python de 32 bits e instalaria binários de 64 bits para a biblioteca OPENCV.
fonte
Uau, encontrei mais um caso para esse problema. Nenhuma das opções acima funcionou. Eventualmente, usei a capacidade do python para introspectar o que estava sendo carregado. Para python 2.7, isso significa:
Isso resultou em um arquivo "cv2.pyd" completamente inesperado em um diretório DLL do Anaconda que não foi tocado por múltiplas tentativas de desinstalação / instalação. Python estava procurando lá primeiro e não encontrando minha boa instalação. Excluí aquele arquivo cv2.pyd e tentei imp.find_module ("cv2") novamente e o python imediatamente encontrou o arquivo certo e o cv2 começou a funcionar.
Portanto, se nenhuma das outras soluções funcionar para você, certifique-se de usar a introspecção python para ver qual arquivo o python está tentando carregar.
fonte
No meu caso, tenho python de 64 bits e lxml é a versão errada - eu deveria estar usando a versão x64 disso também. Resolvi isso baixando a versão de 64 bits do lxml aqui:
https://pypi.python.org/pypi/lxml/3.4.1
Essa foi a resposta mais simples para um problema frustrante.
fonte
Acabei de ter esse problema, acontece que era só porque eu estava usando a versão x64 do arquivo opencv. Tentei o x86 e funcionou.
fonte
Se o seu sistema de compilação (CMake no meu caso) copiar o arquivo de
<name>.dll
para<name>.pyd
, você obterá esse erro se o arquivo original não for realmente uma dll. No meu caso, a construção de bibliotecas compartilhadas foi desativada, então o arquivo subjacente era na verdade um*.lib
.Eu descobri esse erro carregando o
pyd
arquivo no DependencyWalker e descobrindo que ele não era válido.fonte
Eu tive o mesmo problema. Aqui está o que eu fiz:
Eu baixei o arquivo pywin32 Wheel daqui , então
Desinstalei o módulo pywin32 . Para desinstalar, execute o seguinte comando no Prompt de Comando.
pip uninstall pywin32
Então, eu reinstalei o pywin32 . Para instalá-lo, abra o Prompt de Comando no mesmo diretório onde se encontra o arquivo pywin32 wheel. Em seguida, execute o seguinte comando.
pip install <Name of the wheel file with extension>
O arquivo da roda será como: piwin32-XXX-cpXX-none-win32.whlIsso resolve o problema para mim. Você também pode tentar. Espero que funcione para você também.
fonte
Copiei o
cv2.pyd
arquivo da/opencv/build/python/2.7/x86
pasta em vez de da/x64
pasta paraC:/Python27/Lib/site-packeges
. Eu segui o resto das instruções fornecidas aqui .Adicionado por outra pessoa, não verificado: Eu também copio o arquivo
cv2.pyd
para a pastaC:/Python27/Lib/site-packages/cv2
. Funciona.fonte
Para mim, o problema era que eu estava usando versões diferentes do Python no mesmo projeto Eclipse. Minha configuração não era consistente com as versões do Python Propriedades do projeto e Executar configuração .
Em Projeto> Propriedades> PyDev , tive o Interpreter definido como Python2.7.11.
Em Run Configurations> Interpreter , estava usando o Default Interpreter. Mudá-lo para Python 2.7.11 corrigiu o problema.
fonte
Eu enfrentei o mesmo problema quando desinstalei e reinstalei uma versão diferente do 2.7.x do Python em meu sistema usando um Windows Installer de 32 bits. Recebi o mesmo erro na maioria das minhas instruções de importação. Desinstalei o Python recém-instalado e baixei um instalador do Windows de 64 bits e reinstalei o Python novamente e funcionou. Espero que isso ajude você.
fonte
Então, eu tive problemas ao instalar o vtk no windows (como eu uso o python 3.7, não há binário disponível até agora apenas para versões mais antigas do python pip install vtk não está funcionando)
Eu escrevi python no meu cmd:
Python 3.7.3 on win32
Então agora eu sei que tenho o python 3.7.3 rodando em 32 bits.
Em seguida, baixei a roda correta em VTK ‑ 8.2.0 ‑ cp37 ‑ cp37m ‑ win32.whl
Em seguida, instalei essa roda:
Então eu testei e funcionou:
fonte
Atualizar numpy.
pip install numpy --upgrade
Trabalhe para mim!!
fonte
Primeiro, copiei
cv2.pyd
de/opencv/build/python/2.7/x86
paraC:/Python27/Lib/site-packeges
. O erro foiEntão eu instalei
numpy-1.8.0-win32-superpack-python2.7.exe
e opencv funciona bem.fonte
Você pode instalar
opencv
de oficial ou não oficial sites .Consulte esta pergunta e este problema se você estiver usando
Anaconda
.fonte
fonte
Tem uma solução muito simples. Depois de instalar o
opencv
localcv2.pyd
deC:\opencv\build\python\2.7\ **x64**
paraC:\Python27\Lib\site-packages
em vez de, lugar
cv2.pyd
deC:\opencv\build\python\2.7\ **x86**
paraC:\Python27\Lib\site-packages
fonte
Recebi este erro ao tentar importar MySQLdb.
O que funcionou para mim foi desinstalar o Python e reinstalá-lo.
Recebi o erro após instalar o npm ( https://www.npmjs.com/get-npm ). Uma coisa que ele fez foi instalar o Python, embora eu já o tivesse.
fonte
Isso tem funcionado para mim. Tentei vários métodos, mas esta foi a minha melhor solução.
Abra o prompt de comando e digite o seguinte;
pip install opencv-python
. (certifique-se de que sua internet esteja ligada). depois disso, tente importá-lo novamente.fonte
Este funcionou comigo
fonte
Eu encontrei a solução, talvez você possa tentar usar a janela cmd em vez da janela de prompt do anaconda para iniciar seu primeiro teste de scrapy.
fonte