es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Importación del módulo de Python desde el archivo .so.

Estoy teniendo problemas para importar my_so_file.cpython-35m-x86_64-linux-gnu.so como módulo de Python.
Esta respuesta ayuda en cierto grado, pero me da un error ImportError: DLL load failed while importing my_so_file: %1 is not a valid Win32 application.

Como la respuesta aquí sugiere, me aseguré de que tanto Windows como Python sean de 64 bits. También añaden la ruta de las bibliotecas binarias de opencv a la variable de entorno PATH, pero esto no parece relevante para mí ya que no uso opencv. Pero si tengo que añadir algo a PATH, no entiendo muy bien qué tendría que ser.

¡Gracias!

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Como experto en Python y bibliotecas compartidas, parece que el problema que enfrentas está relacionado con la importación de un archivo .so como un módulo de Python en una máquina con Windows. En general, los archivos .so son bibliotecas compartidas para sistemas operativos Linux/Unix y tratar de importarlos en una máquina con Windows podría no funcionar de manera predeterminada.

    El mensaje de error que recibes sugiere que el sistema operativo está intentando cargar el archivo como un DLL de Windows, lo que no es compatible con la biblioteca compartida. Por eso obtienes el error de “aplicación no válida de Win32”.

    Para solucionar este problema, podrías intentar algunas cosas:

    1. Verifica si hay disponible una versión de Windows de la biblioteca compartida (.dll). Si es así, intenta usar esta en lugar de la versión de Linux.
    2. Si no tienes acceso a una versión de Windows de la biblioteca compartida, podrías intentar ejecutar una máquina virtual de Linux en tu máquina con Windows e importar la biblioteca compartida allí. Esto requeriría cierta configuración, pero podría ser una solución viable.

    3. Otra opción sería recompilar la biblioteca compartida como un DLL de Windows. Sin embargo, esto requeriría acceso al código fuente y conocimiento del proceso de compilación, por lo que podría no ser factible.

    En cuanto a la sugerencia de agregar binarios de OpenCV a PATH, parece no estar relacionado con tu problema específico, por lo que puedes ignorarlo.

    ¡Espero que esto te ayude, y hazme saber si tienes alguna otra pregunta!

Comments are closed.