Tengo una situación muy parecida a la de ImportError: Error de carga de DLL:% 1 no es una aplicación Win32 válida , pero la respuesta no me funciona.
Mi código Python dice:
import cv2
Pero esa línea arroja el error que se muestra en el título de esta pregunta.
Tengo OpenCV instalado en C:\lib\opencv
esta máquina de 64 bits. Estoy usando Python de 64 bits.
Mi PYTHONPATH variables: PYTHONPATH=C:\lib\opencv\build\python\2.7
. Esta carpeta contiene cv2.pyd
y eso es todo.
Variable My PATH: Path=%OPENCV_DIR%\bin;...
esta carpeta contiene 39 archivos DLL como opencv_core246d.dll
.
OPENCV_DIR tiene este valor: OPENCV_DIR=C:\lib\opencv\build\x64\vc11
.
La solución en ImportError: Error en la carga de DLL:% 1 no es una aplicación Win32 válida dice que agregue "la nueva ruta de binarios opencv ( C:\opencv\build\bin\Release
) a la variable de entorno PATH de Windows". Pero como se muestra arriba, ya tengo la carpeta de binarios OpenCV ( C:\lib\opencv\build\x64\vc11\bin
) en mi RUTA. Y mi instalación de OpenCV no tiene ninguna carpeta de lanzamiento (excepto una vacía en build / java).
¿Alguna idea de lo que va mal? ¿Puedo decirle a Python que rastree detalladamente el proceso de carga? ¿Exactamente qué DLL está buscando?
Gracias, lars
EDITAR:
Acabo de notar que, de acuerdo con http://www.dependencywalker.com/ , el cv2.pyd
de C:\lib\opencv\build\python\2.7
es de 32 bits, mientras que la máquina y el pitón estoy corriendo son de 64 bits. ¿Podría ser el problema? Y si es así, ¿dónde puedo encontrar una versión de 64 bits de cv2.pyd?
PYTHONPATH
solía contener las entradas que la instalación de la biblioteca SimpleCV dejó allí. A pesar de que ya he desinstalado SimpleCV,PYTHONPATH
no se restauró y apuntaba a algunos directorios con versiones conflictivas de OpenCV dejadas por la instalación de SimpleCV. Solución: borre elPYTHONPATH
.Respuestas:
Binarios de Windows no oficiales para paquetes de extensión de Python
puedes encontrar cualquier libs de Python desde aquí
fuente
Compruebe si la versión de Python que está utilizando también es de 64 bits. Si no, ese podría ser el problema. Estaría usando una versión de Python de 32 bits y habría instalado binarios de 64 bits para la biblioteca OPENCV.
fuente
Vaya, encontré otro caso más para este problema. Ninguno de los anteriores funcionó. Finalmente usé la capacidad de Python para introspectar lo que se estaba cargando. Para python 2.7 esto significa:
Esto resultó en un archivo "cv2.pyd" completamente inesperado en un directorio DLL de Anaconda que no fue tocado por múltiples intentos de desinstalación / instalación. Python buscó allí primero y no encontró mi buena instalación. Eliminé ese archivo cv2.pyd y probé imp.find_module ("cv2") nuevamente y Python inmediatamente encontró el archivo correcto y cv2 comenzó a funcionar.
Entonces, si ninguna de las otras soluciones funciona para usted, asegúrese de usar la introspección de Python para ver qué archivo está tratando de cargar Python.
fuente
En mi caso, tengo python de 64 bits, y lxml era la versión incorrecta; debería haber estado usando la versión x64 de eso también. Resolví esto descargando la versión de 64 bits de lxml aquí:
https://pypi.python.org/pypi/lxml/3.4.1
Esta fue la respuesta más simple a un problema frustrante.
fuente
Acabo de tener este problema, resulta que fue solo porque estaba usando la versión x64 del archivo opencv. Probé el x86 y funcionó.
fuente
Si su sistema de compilación (CMake en mi caso) copia el archivo de
<name>.dll
a<name>.pyd
, obtendrá este error si el archivo original no era realmente un dll. En mi caso, la creación de bibliotecas compartidas se desactivó, por lo que el archivo subyacente era en realidad un*.lib
.Descubrí este error al cargar el
pyd
archivo en DependencyWalker y descubrí que no era válido.fuente
Yo tuve el mismo problema. Esto es lo que hice:
Descargué el archivo de rueda pywin32 desde aquí , luego
Desinstalé el módulo pywin32 . Para desinstalar, ejecute el siguiente comando en el símbolo del sistema.
pip uninstall pywin32
Luego, reinstalé pywin32 . Para instalarlo, abra el símbolo del sistema en el mismo directorio donde se encuentra el archivo de rueda pywin32. Luego ejecute el siguiente comando.
pip install <Name of the wheel file with extension>
El archivo de la rueda será como: piwin32-XXX-cpXX-none-win32.whlMe resuelve el problema. Puede que también desee probarlo. Espero que funcione para ti también.
fuente
Copié el
cv2.pyd
archivo de la/opencv/build/python/2.7/x86
carpeta en lugar de desde la/x64
carpeta aC:/Python27/Lib/site-packeges
. Seguí el resto de las instrucciones proporcionadas aquí .Agregado por otra persona, no verificado: también copio el archivo
cv2.pyd
a la carpetaC:/Python27/Lib/site-packages/cv2
. Funciona.fuente
Para mí, el problema era que estaba usando diferentes versiones de Python en el mismo proyecto de Eclipse. Mi configuración no era consistente con las Propiedades del proyecto y las versiones Ejecutar configuración de Python.
En Proyecto> Propiedades> PyDev , tenía el intérprete configurado en Python2.7.11.
En Ejecutar configuraciones> Intérprete , estaba usando el intérprete predeterminado. Cambiarlo a Python 2.7.11 solucionó el problema.
fuente
Enfrenté el mismo problema cuando desinstalé y reinstalé una versión diferente de 2.7.x de Python en mi sistema usando un instalador de Windows de 32 bits. Recibí el mismo error en la mayoría de mis declaraciones de importación. Desinstalé Python recién instalado y descargué un instalador de Windows de 64 bits y reinstalé Python nuevamente y funcionó. Espero que esto te ayude.
fuente
Así que tuve problemas para instalar vtk en Windows (como uso Python 3.7, hasta ahora no hay binarios disponibles solo para versiones anteriores de Python, pip install vtk no funciona)
Escribí python en mi cmd:
Python 3.7.3 on win32
Entonces ahora sé que tengo Python 3.7.3 ejecutándose en 32 bits.
Luego descargué la rueda correcta en VTK ‑ 8.2.0 ‑ cp37 ‑ cp37m ‑ win32.whl
A continuación, instalé esa rueda:
Luego lo probé y funcionó:
fuente
Actualice numpy.
pip install numpy --upgrade
¡¡Trabaja para mi!!
fuente
Primero copié
cv2.pyd
de/opencv/build/python/2.7/x86
aC:/Python27/Lib/site-packeges
. El error fueLuego lo instalé
numpy-1.8.0-win32-superpack-python2.7.exe
y opencv funciona bien.fuente
Puede instalar
opencv
desde sitios oficiales o no oficiales .Consulte esta pregunta y este problema si está utilizando
Anaconda
.fuente
fuente
Tiene una solución muy sencilla. Después de instalar
opencv
lugarcv2.pyd
deC:\opencv\build\python\2.7\ **x64**
aC:\Python27\Lib\site-packages
en lugar de, lugar
cv2.pyd
deC:\opencv\build\python\2.7\ **x86**
aC:\Python27\Lib\site-packages
fuente
Recibí este error al intentar importar MySQLdb.
Lo que funcionó para mí fue desinstalar Python y luego reinstalarlo.
Recibí el error después de instalar npm ( https://www.npmjs.com/get-npm ). Una cosa que hizo fue instalar Python aunque ya lo tenía.
fuente
Esto me ha funcionado. He probado diferentes métodos pero esta fue mi mejor solución.
Abra el símbolo del sistema y escriba lo siguiente;
pip install opencv-python
. (asegúrese de que su Internet esté encendido). después de eso, intente importarlo nuevamente.fuente
Este funcionó conmigo
fuente
Encontré la solución, tal vez pueda intentar usar la ventana cmd en lugar de la ventana del indicador de anaconda para comenzar su primera prueba de scrapy.
fuente