私はつい最近、pyspatialite 3.0.1 とそれに依存するすべてのライブラリの x64 ビルドという悪夢に見舞われました。それを行うことはできますが、正しく行うには「微調整」が必要です。
最初に、spatialite.c アマルガムをコンパイルするために必要になる可能性がある回避策をここでメモします。
Pyspatialite 3.0.1 問題 #7 コメント #3
次に、Python 2.7 x64 がコンパイルされている MSVC 2008 / SDK 7.0 x64 でコンパイルすることをお勧めします。依存ライブラリを mingw-w64 でコンパイルしたときに、正しくコンパイルしようとしてかなりのトラブルに遭遇しました。
iconv (v. 1.9.2) と proj4 (v. 4.8.0) はどちらも問題なくコンパイルおよびインストールできるようです。ただし、最新の GEOS svn_trunk (v. 3.3.5) を使用すると、問題が発生する場合があります。回避策/修正については、次のリンクに注意してください...
OSGEO GEOS TRAC チケット #574
OSGEO GEOS TRAC チケット #577
577 から 2 つの makefile をダウンロードすると、574 に修正が含まれています。
また、毎晩のスナップショットの 1 つをダウンロードし、コンパイルする前に geos/src/triangulate ディレクトリをビルド フォルダーにコピーする必要があります。
最後に、geos/src/dirlist.mk を少し変更します。
45 行目で、'simplify \' のすぐ下、'util' の上に 'triangulate \' (引用符なし) を追加します。
コンパイルすると、いくつかの警告が表示される場合がありますが、ビルドが完全に失敗することはありません...
nmake /f makefile.vc PREFIX=../Path/To/Geos/Install/Here
nmake install /f makefile.vc PREFIX=../Path/To/Geos/Install/Here
これにより、lib の依存関係が処理されます。1.pyspatialite ビルド フォルダーに setup.cfg ファイルを作成し、/bin、/lib、および /include パスを追加するか、または 2.pyspatialite setup.py ファイルを直接編集し、同じことをする。
setup.py ファイルを直接編集し、依存関係ライブラリへのパスを次のように追加するのが最も簡単であることがわかりました。
(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']
これらの変更を行った後も pyspatialite がビルドに失敗する場合は、setup.py にもう 1 セットの変更を加えます。121 行目あたりに次の行を追加します...
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')
特定の設定に合わせてパスを置き換えることを忘れないでください。それはそれを行う必要があります。「python setup.py install」を実行すると、すべてが機能するはずです。
../Python27/Lib/site-packages/pyspatialite/test ですべてのテストを実行できます - それらはすべて合格しました。ただし、より適切で現実的なテストは、このリンクからサンプル コードを実行することです。
SpatiaLite と Python
ただし、著者が行っている手順では、x64 ビット環境で動作する依存ライブラリを取得するための詳細は説明されていません。また、pyspatialite 3.0.1 が適切なバージョンの Spatialite 融合を自動的に検出するようになったため、それらが特に役立つとは思いませんでした。ダウンロードする。このサイトのサンプル コードは、spatialite データベース ファイルを作成し、そこに何千ものエントリを入力します。すべてがうまくいきました。したがって、pyspatialite x64 ビルドを取得するための上記の方法が機能すると思います。
幸運を!
-RMWカオス