¿es posible importar módulos de la biblioteca .lib al programa Python (tan simple como .dll)?Biblioteca estática (.lib) al proyecto de Python
Respuesta
Lamentablemente, no. Las bibliotecas de vínculos dinámicos son necesarias para la carga en tiempo de ejecución.
¿Tiene acceso al código fuente? ¿O al menos un archivo de cabecera? Si lo hace, entonces puede crear una biblioteca compartida o una extensión de Python que enlace a la biblioteca. Como mencionó las DLL, supongo que está trabajando en Windows. This tutorial puede ser útil.
En teoría, sí; en la práctica, probablemente no, y ciertamente no tan simple como una DLL. Las bibliotecas estáticas son esencialmente solo colecciones de archivos de objeto, y necesitan un enlazador completo para resolver correctamente todas las referencias de reubicación que puedan contener. Podría ser posible tomar su biblioteca estática y simplemente vincular sus contenidos para formar una biblioteca compartida, pero eso requeriría que la biblioteca estática se haya construido como código independiente de posición (PIC), lo cual no está garantizado. En teoría, no hay ninguna razón por la que el trabajo que un enlazador completo haría para vincular la biblioteca no podría hacerse en tiempo de ejecución, pero en la práctica no existe un código estándar para hacerlo. Su mejor opción real es, probablemente, rastrear el origen o una versión compartida de la biblioteca.
¿Tiene una biblioteca estática o tiene un archivo .lib y asume que es una biblioteca estática? En Windows, una biblioteca .lib puede ser una biblioteca de importación o una biblioteca estática. Se crea una biblioteca de importación junto con el dll del mismo nombre (por ejemplo, kernel32.dll y kernel32.lib). Se usa en el momento del enlace para rellenar la tabla de direcciones de importación del ejecutable. Una biblioteca estática contiene código que se copiará en el ejecutable en el momento del enlace.
Si tiene acceso a un compilador, otra opción puede ser crear un módulo de extensión que haga uso de la biblioteca estática. Para más detalles, vea the Python docs
- 1. De la biblioteca estática MinGW (.a) a la biblioteca estática de Visual Studio (.lib)
- 2. Xcode 4: Cómo agregar biblioteca estática Objetivo Dependencia al Proyecto
- 3. Localización de cadenas en lib estática
- 4. Símbolo duplicado: Incluir la lib estática en B estática, también incluir lib A y B en el Proyecto XCode
- 5. Netbeans: ¿cómo incluir otro proyecto de biblioteca estática de C++?
- 6. ¿Cómo crear una biblioteca estática de un proyecto de Xcode?
- 7. C++ Project compila como lib estática, falla (error del enlazador) como lib dinámico. ¿por qué?
- 8. Biblioteca estática con dependencias
- 9. Biblioteca estática y Biblioteca dinámica: Confusión
- 10. ¿Qué hay dentro del archivo .lib de la biblioteca estática, biblioteca dinámica enlazada estáticamente y biblioteca dinámica vinculada dinámicamente?
- 11. Biblioteca estática y -weak-lSystem
- 12. Cómo agregar una biblioteca estática externa a un proyecto de Visual C++ 2010 Express
- 13. Biblioteca estática de C++: ¿cómo crear un archivo .a desde .lib?
- 14. ¿Cómo compilar Haskell a una biblioteca estática?
- 15. Determinación de la arquitectura de la CPU de una biblioteca estática (LIB) en Windows
- 16. Verificación de CRT utilizado en la biblioteca (.lib)
- 17. Biblioteca estática de construcción de iPhone para armv6 y armv7 que incluye otra biblioteca estática
- 18. Prueba de unidad con una biblioteca estática
- 19. ¿Cómo decirle a Python que prefiera el módulo de $ HOME/lib/python sobre/usr/lib/python?
- 20. Android - Agregar una biblioteca externa al proyecto
- 21. Convertir biblioteca C# al proyecto MSTest
- 22. Bluetooth lib para python 3
- 23. Cómo convertir una dll dinámica a lib estática?
- 24. Eliminando una llamada al método desde dentro de una lib estática (.a) sin recompilar
- 25. Contenido de una biblioteca estática
- 26. Cómo vincular Boost en una biblioteca estática dependiente
- 27. Registro de objetos en la biblioteca estática
- 28. Python imap Lib
- 29. RPC lib para Python
- 30. símbolo externo sin resolver "_hypot" al utilizar biblioteca estática