pythondll python27 puede failed especificado error encontrar python opencv dll path

python27 - python dll



ImportError: Error de carga DLL:% 1 no es una aplicación Win32 válida. Pero las DLL están ahí (15)

Tengo una situación muy parecida a la de ImportError: Error al cargar DLL:% 1 no es una aplicación Win32 válida , pero la respuesta no me funciona.

Mi código de 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 en esta máquina de 64 bits. Estoy usando Python de 64 bits.

Mi variable PYTHONPATH: PYTHONPATH=C:/lib/opencv/build/python/2.7 . Esta carpeta contiene cv2.pyd y eso es todo.

Mi variable 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: DLL carga fallida:% 1 no es una aplicación Win32 válida dice agregar "la nueva ruta de binarios de opencv ( C:/opencv/build/bin/Release ) a la variable de entorno Windows PATH". Pero como se muestra arriba, ya tengo la carpeta de binarios de OpenCV ( C:/lib/opencv/build/x64/vc11/bin ) en mi RUTA. Y mi instalación de OpenCV no tiene ninguna carpeta de versiones (a excepción de una vacía en build / java).

¿Alguna idea de lo que está pasando mal? ¿Puedo decirle a Python que rastree el proceso de carga? Exactamente qué DLL está buscando?

Gracias, Lars

EDITAR:

Me acabo de dar cuenta de que, de acuerdo con http://www.dependencywalker.com/ , el cv2.pyd en C:/lib/opencv/build/python/2.7 es de 32 bits, mientras que la máquina y el Python que estoy ejecutando 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?


  1. Asegúrese de haber instalado la versión de Python 2.7.12 o inferior, de lo contrario, obtendrá este error definitivamente.
  2. Asegúrese de que el cliente de Oracle esté instalado en 64 bits si el sistema operativo es de 64 bits.
  3. Asegúrese de que el compilador de Microsoft Visual C ++ para Python 2.7 sea 64 por bit para 64 bits Os o 32 bits para 32 bits. Nota: - SI tu sistema operativo es de 64 bits, instala todo el paquete de 64 bits o si Os tiene 32 bits instala el paquete de 32 bits.

Acabo de tener este problema, parece que fue porque estaba usando la versión x64 del archivo opencv. Probé el x86 y funcionó.


En mi caso, tengo 64bit python, y fue lxml la versión incorrecta. Debería haber estado usando la versión x64 de eso también. Lo resolví descargando la versión de lxml de 64 bits aquí:

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

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

Esta fue la respuesta más simple a un problema frustrante.


Encontré la solución, tal vez puedas intentar usar la ventana de cmd en lugar de la ventana de aviso de anaconda para comenzar tu primera prueba de detección.


Me enfrenté al mismo problema cuando desinstalé y reinstalé una versión diferente de 2.7.x de Python en mi sistema usando un Windows Installer de 32 bits. Tengo el mismo error en la mayoría de mis declaraciones de importación. Desinstalé el Python recién instalado y descargué un instalador de Windows de 64 bits y volví a instalar Python y funcionó. Espero que esto te ayude.


Para mí, el problema era que estaba usando diferentes versiones de Python en el mismo proyecto de Eclipse. Mi configuración no era coherente con las propiedades del proyecto y las versiones de ejecución de Python de configuración .

En Proyecto> Propiedades> PyDev , tuve el intérprete configurado en Python2.7.11.

En Configuraciones de ejecución> Intérprete , estaba usando el intérprete predeterminado. Cambiarlo a Python 2.7.11 solucionó el problema.


Por favor, compruebe si la versión de Python que está utilizando también es de 64 bits. Si no, ese podría ser el problema. Utilizaría una versión de Python de 32 bits y habría instalado un binario de 64 bits para la biblioteca OPENCV.


Primero copié cv2.pyd de /opencv/build/python/2.7/x86 a C:/Python27/Lib/site-packeges . El error fue

"RuntimeError: módulo compilado contra API versión 9 pero esta versión de numpy es 7"

Luego instalé numpy-1.8.0-win32-superpack-python2.7.exe y opencv funciona bien.

>>> import cv2 >>> print cv2.__version__ 2.4.13


Puede instalar opencv desde sitios official o here .

Consulte this pregunta y this problema si está usando Anaconda .


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 en realidad un archivo <name>.dll . En mi caso, la creación de bibliotecas compartidas se desconectó, por lo que el archivo subyacente era realmente *.lib .

Descubrí este error cargando el archivo pyd en http://www.dependencywalker.com/ y descubriendo que no era válido.


Tiene una solución muy simple. Después de instalar el lugar de opencv

cv2.pyd desde C:/opencv/build/python/2.7/ **x64** a C:/Python27/Lib/site-packages

en lugar de, coloque cv2.pyd desde C:/opencv/build/python/2.7/ **x86** a C:/Python27/Lib/site-packages


Wow, encontré otro caso más para este problema. Ninguno de los anteriores funcionó. Eventualmente utilicé la habilidad de Python para introspectar lo que se estaba cargando. Para python 2.7 esto significa:

import imp imp.find_module("cv2")

Esto dio como resultado un archivo "cv2.pyd" completamente inesperado en un directorio Anaconda DLL que no fue tocado por múltiples intentos de desinstalación / instalación. Python estaba buscando primero y no encontró mi buena instalación. Borré ese archivo cv2.pyd y probé imp.find_module ("cv2") de nuevo y Python encontró inmediatamente el archivo correcto y cv2 comenzó a funcionar.

Entonces, si ninguna de las otras soluciones funciona para usted, asegúrese de usar python introspection para ver qué archivo está tratando de cargar Python.


Yo tuve el mismo problema. Esto es lo que hice:

  1. Descargué el archivo de rueda de Pywin32 de here , luego

  2. Desinstalé el módulo pywin32 . Para desinstalar, ejecute el siguiente comando en Símbolo del sistema.

    pip uninstall pywin32

  3. Luego, reinstalé pywin32 . Para instalarlo, abra el símbolo del sistema en el mismo directorio donde se encuentra el archivo de rueda pywin32. Luego ejecuta el siguiente comando.

    pip install <Name of the wheel file with extension> archivo de rueda será como: piwin32-XXX-cpXX-none-win32.whl

Soluciona el problema para mí. También puede intentarlo. Espero que funcione para ti también.



cv2.pyd archivo /opencv/build/python/2.7/x86 carpeta /opencv/build/python/2.7/x86 lugar de la carpeta /x64 a C:/Python27/Lib/site-packeges . Seguí el resto de las instrucciones proporcionadas here .