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.

¿Cómo se crean los archivos .pyd a partir de proyectos en C++?

Mi objetivo actual es hacer que este repositorio, CV-camera-finder, sea compatible con Python 3.10. En el archivo README, el autor original dice:

Una función sencilla para encontrar una lista de cámaras conectadas con Media Foundation. Este es solo un código modificado de un ejemplo encontrado en https://github.com/Microsoft/Windows-classic-samples/tree/master/Samples/Win7Samples/multimedia/mediafoundation/MFCaptureToFile para usar en python.

Descarga pymf.pyd (32 bits -> archivo en la carpeta 32, 64 bits -> …) en tu PYTHONPATH para usarlo. Si deseas modificarlo, edita los archivos cpp y compílalos nuevamente.

Mi conocimiento de Python es intermedio y de C++ soy principiante en el mejor de los casos. Descargué Visual Studio 2022 e intenté compilarlo por mi cuenta sin éxito. Utilicé sus archivos cap.cpp y pymf.cpp, así como los archivos capture.h de las muestras de Media Foundation referenciadas, bajo la impresión basada en las inclusiones de que no necesitaba nada más. Apunté mi inclusión de Python.h al que se encuentra en las carpetas de inclusión de la versión 3.10 asumiendo que eso solucionaría el problema.

Me encontré con varios problemas. El primero fue:

unable to open 'python310.lib'

Agregué una dependencia de biblioteca adicional apuntando a la carpeta libs de la versión 3.10. Después de hacer eso, estos son los errores que estoy obteniendo ahora:

LNK2001 símbolo externo no resuelto main
LNK1120 1 externos no resueltos

Estoy claramente sobrepasando mis habilidades en esto, pero realmente me gustaría hacer que esto funcione para Python 3.10. ¿Alguien podría proporcionar pasos/consejos/tutoriales, etc., para compilarlo y convertirlo en un archivo .pyd?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Como experto en IT especializado en Python, C++, Visual Studio, MS-Media-Foundation y Pyd, sugiero los siguientes pasos para resolver los problemas enfrentados por el publicador original:

    1. Dado que hay un error relacionado con la incapacidad de abrir ‘python310.lib’, es posible que las bibliotecas de Python 3.10 no estén instaladas correctamente. Asegúrese de que las herramientas de desarrollo y bibliotecas de Python estén instaladas correctamente para Python 3.10.
    2. Asegúrese de que las bibliotecas correctas estén incluidas en Visual Studio 2022. Vaya a las propiedades del proyecto -> Propiedades de configuración -> Vinculador -> Entrada -> Dependencias adicionales y agregue las bibliotecas requeridas, que en este caso serían python310.lib y MFReadWrite.lib.

    3. Dado que el mensaje de error sugiere un símbolo externo no resuelto, es posible que algunas funciones no se estén vinculando correctamente. Verifique si todas las bibliotecas y encabezados requeridos se están incluyendo correctamente.

    4. Asegúrese de que la configuración de compilación esté establecida correctamente para 32 bits o 64 bits. Descargue la versión correcta de pymf.pyd y colóquela en la carpeta correcta.

    5. Si los problemas persisten, podría ser beneficioso consultar a un experto en los campos relacionados para solucionar el problema en mayor detalle. También hay tutoriales disponibles en línea que pueden ayudar con la construcción de archivos .pyd con Visual Studio.

    En general, construir un archivo .pyd para Python 3.10 puede ser desafiante, especialmente para aquellos con experiencia limitada en C++. Sin embargo, con una investigación exhaustiva y solución de problemas, es posible lograr el objetivo.

Comments are closed.