Acabo de pasar por una pesadilla de una versión x64 de pyspatialite 3.0.1 y todas sus bibliotecas dependientes. Se puede hacer, pero requiere algunos "ajustes" para hacerlo bien.
En primer lugar, tenga en cuenta la solución que puede ser necesaria para compilar spatialite.c amalgama aquí:
Pyspatialite 3.0.1 Issue #7 Comment #3
En segundo lugar, le sugiero que compila con MSVC 2008/SDK 7.0 x64, que es lo que Python 2.7 x64 está compilado con. Me encontré con un gran problema tratando de compilar las cosas justo cuando compilé las bibliotecas de dependencia con mingw-w64.
iconv (v 1.9.2) y proj4 (v. 4.8.0) ambos parecen compilarse e instalarse perfectamente; sin embargo, puede tener algunos problemas con el último svn_trunk de GEOS (v. 3.3.5). Tenga en cuenta los siguientes enlaces para soluciones provisionales/correcciones ...
OSGEO GEOS TRAC Ticket #574
OSGEO GEOS TRAC Ticket #577
Si descarga los dos archivos make de 577, que incluyen el arreglo de 574.
Usted también querrá descargue una de las instantáneas nocturnas y copie el directorio geos/src/triangulate en su carpeta de compilación antes de compilar, ya que falta en svn_trunk.
Por último, tendrá que hacer una modificación menor a GEOS/src/dirlist.mk:
En la línea 45, agregue 'triangular \' (sin comillas) justo debajo de 'simplificar \' y más » util '.
Ahora cuando se compila, se pueden ver algunas advertencias, pero la construcción no debe fallar pura y simple ...
nmake /f makefile.vc PREFIX=../Path/To/Geos/Install/Here
nmake install /f makefile.vc PREFIX=../Path/To/Geos/Install/Here
que se encarga de sus dependencias de bibliotecas. Ahora debe hacer una de estas dos cosas: 1. Cree un archivo setup.cfg en su carpeta de construcción pyspatialite y agregue las rutas/bin,/lib, y/include, o 2. Edite de forma directa la configuración de pyspatialite.py archivo y haz lo mismo.
me pareció más fácil de editar el archivo setup.py directamente, y agregue las rutas de acceso a las librerias dependientes a ser similar a:
(line 45) include_dirs = ['../usr/local/include', '../python27/include']
(line 46) library_dirs = ['../usr/local/lib', '../python27/libs', '../usr/local/bin', '../python27/DLLs']
(line 47) libraries = ['geos','geos_c','proj','iconv'] # You may need to add 'iconv' here
(line 48) runtime_library_dirs = ['../usr/local/lib', '../python27/libs', '../usr/local/bin', '../python27/DLLs']
Si después de realizar estos cambios pyspatialite sigue sin construir para usted, a continuación, hacer un conjunto más de las modificaciones a setup.py: alrededor de la línea 121, añadir las siguientes líneas ...
ext.include_dirs.append('../python27/include')
ext.include_dirs.append('../usr/local/include')
ext.library_dirs.append('../python27/libs')
ext.library_dirs.append('../usr/local/lib')
ext.library_dirs.append('../python27/DLLs')
ext.library_dirs.append('../usr/local/bin')
Recuerde reemplazar los caminos para que coincida con su configuración particular. Deberias hacer eso. Después de ejecutar 'python setup.py install' todo debería funcionar.
Puede ejecutar todas las pruebas en ../Python27/Lib/site-packages/pyspatialite/test - todas pasaron por mí; Sin embargo, una prueba mejor, más realista podría ser la de ejecutar el código de ejemplo de este enlace:
SpatiaLite and Python
Los pasos el autor entra en no cubra el detalle para conseguir las librerias dependientes que trabajan en un bit x64 Sin embargo, no me pareció particularmente útil ya que pyspatialite 3.0.1 ahora detecta automáticamente la versión apropiada de la fusión de spatialite para descargar. El código de muestra en el sitio crea un archivo de base de datos spatialite y lo rellena con miles de entradas. Todo funcionó con éxito para mí; así que creo que el método descrito anteriormente para obtener una construcción pyspatialite x64 funciona.
¡Buena suerte!
-RMWChaos
posible duplicado de [SQLite + SpatiaLite problems] (http://stackoverflow.com/questions/1556436/sqlite-spatialite-problems) –
Acabo de verificar ese hilo, Cedric - Lo perdí en mi búsqueda. El problema es similar, aunque estoy usando Python no C# y también estoy usando la versión beta de 64 bits, que es nueva desde entonces. Definitivamente tengo todos los dlls listados en ese hilo para que la solución no resuelva mi problema. – MappaGnosis