Construir y amalgamar bibliotecas en win32 es un desafío :)
Mi supuestos:
- python27 (tengo ActiveState pitón pero python.org debería estar bien) en c: \ python27
- Visual Studio 2010 Professional (creo que expreso debería funcionar también)
Descargar BdB y pysqlite (esta vez tengo 2.6.3) y colocarlo en c:\bdb
, de desempaquetado bdb por lo que tendrá
C:\bdb\db-5.2.36
van de la C:\bdb\db-5.2.36\build_windows
recoger Berkeley_DB_vs2010.sln
, seleccione Static Release
como la configuración y construir
es necesario tener libdb52s.lib
y libdb_sql52s.lib
en
C:\bdb\db-5.2.36\build_windows\Win32\Static Release
ahora desempaquetar pysqlite en c:\bdb
, entre C:\bdb\pysqlite-2.6.3
y d edición setup.cfg
de la siguiente manera:
[build_ext]
include_dirs=C:\bdb\db-5.2.36\lang\sql\generated
library_dirs=C:\bdb\db-5.2.36\build_windows\Win32\Static Release
define=SQLITE_OMIT_LOAD_EXTENSION
asegúrese de remover las bibliotecas = he tenido que añadir a setup.py, causa de enlace estática tenemos que especificar más de una biblioteca, si alguien conoce una manera para especificar una lista de setup.cfg, por favor dígame :)
abierto setup.py
van en la línea 191 y reemplazar:
libraries=libraries
con:
libraries=['libdb_sql52s', 'libdb52s', 'ws2_32', 'advapi32'],
símbolo del sistema VS2010 abierta (en Visual Studio Tools menú)
ir en c:\bdb\pysqlite
set DISTUTILS_USE_SDK=1
set MSSdk=1
python setup.py build
# ignore errors about manifests, just make sure _sqlite.pyd is built
# make same tests of the linux instructions
python setup.py bdist_wininst
will make the .exe installer in dist subdir
estoy haciendo una encuesta, ¿Por qué cree que incluso quiere esto? Mantener la misma API no hará que los archivos de la base de datos sean más portátiles, tendrá que repetir el procedimiento de compilación no estándar cada vez que tenga que migrar a un nuevo host. Usar una base de datos más completa que Sqlite3 es bastante simple, todas las bases de datos importantes tienen enlaces compatibles con DBApi. – SingleNegationElimination
Respuesta a su encuesta: Todos tienen su propio caso de uso y ruta dev. – Merlin
Pregunto por su caso de uso, ya que probablemente esté buscando una solución para ese caso en particular. – SingleNegationElimination