Tôi vừa mới trải qua một cơn ác mộng về một phiên bản x64 của pyspatialite 3.0.1 và tất cả thư viện phụ thuộc của nó. Nó có thể được thực hiện, nhưng phải mất một số "tinh chỉnh" để làm cho nó đúng.
Trước tiên, lưu ý giải pháp khắc phục có thể cần thiết để biên dịch không gian.c hợp nhất ở đây:
Pyspatialite 3.0.1 Issue #7 Comment #3
Thứ hai, tôi đề nghị bạn biên dịch với MSVC 2008/SDK 7.0 x64, đó là những gì Python 2.7 x64 được biên soạn với. Tôi đã gặp rất nhiều rắc rối khi cố gắng biên dịch ngay khi tôi biên dịch các lib phụ thuộc với mingw-w64.
biểu tượngv (v. 1.9.2) và proj4 (v. 4.8.0) cả hai dường như biên dịch và cài đặt tốt; tuy nhiên, bạn có thể gặp phải một số sự cố khi sử dụng svn_trunk GEOS mới nhất (v. 3.3.5). Lưu ý các liên kết sau đây để biết cách giải quyết/sửa ...
OSGEO GEOS TRAC Ticket #574
OSGEO GEOS TRAC Ticket #577
Nếu bạn tải hai makefiles từ 577, chúng bao gồm việc sửa chữa trong 574.
Bạn cũng sẽ muốn tải xuống một trong những ảnh chụp nhanh hàng đêm và sao chép thư mục geos/src/triangulate qua thư mục build của bạn trước khi biên dịch, vì nó thiếu trong svn_trunk.
Cuối cùng, bạn sẽ muốn thực hiện một thay đổi nhỏ để GEOS/src/dirlist.mk:
Tại dòng 45, thêm 'triangulate \' (không có dấu ngoặc kép) ngay dưới 'đơn giản hóa \' trở lên ' util '.
Bây giờ khi bạn biên dịch, bạn có thể thấy một số cảnh báo, nhưng việc xây dựng không nên thất bại hoàn toàn ...
nmake /f makefile.vc PREFIX=../Path/To/Geos/Install/Here
nmake install /f makefile.vc PREFIX=../Path/To/Geos/Install/Here
đó sẽ chăm sóc phụ thuộc lib của bạn. Bây giờ bạn cần thực hiện một trong hai điều sau: 1. Tạo tệp setup.cfg trong thư mục xây dựng pyspatialite của bạn và thêm đường dẫn/bin,/lib và/include hoặc 2. Trực tiếp chỉnh sửa pyspatialite setup.py và làm như vậy.
tôi tìm thấy nó dễ dàng nhất để chỉnh sửa các tập tin setup.py trực tiếp, và thêm các đường dẫn đến sự phụ thuộc libs để trông giống như:
(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']
Nếu sau khi thực hiện những thay đổi này pyspatialite vẫn thất bại trong việc xây dựng cho bạn, sau đó làm thêm một bộ sửa đổi setup.py: khoảng dòng 121, thêm những dòng sau đây ...
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')
hãy nhớ để thay thế các đường dẫn để phù hợp với thiết lập cụ thể của bạn. Nên làm vậy. Sau khi bạn chạy 'python setup.py install', mọi thứ sẽ hoạt động.
Bạn có thể chạy tất cả các thử nghiệm trong ../Python27/Lib/site-packages/pyspatialite/test - tất cả đều được chuyển cho tôi; Tuy nhiên, một tốt hơn, kiểm tra thực tế hơn có thể là để chạy mã ví dụ từ liên kết này:
SpatiaLite and Python
Các bước tác giả đi vào không bao gồm các chi tiết để có được những libs phụ thuộc làm việc trong một chút x64 môi trường, tuy nhiên, và tôi đã không tìm thấy chúng đặc biệt hữu ích như pyspatialite 3.0.1 bây giờ tự động phát hiện các phiên bản thích hợp của sự pha trộn không gian để tải về. Mã mẫu trên trang web tạo tệp cơ sở dữ liệu không gian và điền nó với hàng nghìn mục nhập. Mọi thứ chạy thành công cho tôi; vì vậy tôi tin rằng phương pháp được nêu ở trên để có được công trình xây dựng pyspatialite x64.
Chúc may mắn!
-RMWChaos
có thể trùng lặp với [SQLite + SpatiaLite problems] (http://stackoverflow.com/questions/1556436/sqlite-spatialite-problems) –
Chỉ cần kiểm tra chuỗi đó, Cedric - Tôi đã bỏ lỡ nó trong tìm kiếm của mình. Vấn đề là tương tự mặc dù tôi đang sử dụng Python không C# và tôi cũng đang sử dụng phiên bản beta 64-bit là mới kể từ đó. Tôi chắc chắn có tất cả các dll được liệt kê trong chủ đề đó để giải pháp không giải quyết vấn đề của tôi. – MappaGnosis