2009-11-25 4 views
5

WindowsマシンでSpatialiteをバックエンドとして使用するGeoDjangoインストールをセットアップする際に問題が引き続き発生します。GeoDjango + SpatialiteをWindowsで実行する

私はGeoDjangoインストーラを使用し、http://www.gaia-gis.it/spatialite/binaries.htmlからプリコンパイルされたライブラリをダウンロードし、それらをgeodjango/binディレクトリにダンプしました。

pysqlite2のインストールを最新のバージョンにアップグレードしました。拡張機能をロードして、自分の設定ファイルにSPATIALITE_LIBRARY_PATHを指定しました。

私はmanage syncdbを実行すると、私はテーブルのためのインデックスを設定する場合しかし、私は以下のようなメッセージを取得、次の出力

 
C:\stuff>manage.py syncdb 
SpatiaLite version ..: 2.3.1 Supported Extensions: 
     - 'VirtualShape'  [direct Shapefile access] 
     - 'VirtualText'   [direct CSV/TXT access] 
     - 'VirtualNetwork  [Dijkstra shortest path] 
     - 'RTree'    [Spatial Index - R*Tree] 
     - 'MbrCache'   [Spatial Index - MBR cache] 
     - 'VirtualFDO'   [FDO-OGR interoperability] 
     - 'SpatiaLite'   [Spatial SQL - OGC] 
PROJ.4 Rel. 4.6.1, 21 August 2008 
GEOS version 3.0.2-CAPI-1.4.2 

を得る:

 
... 
Installing custom SQL for core.LocationHint model 
updateTableTriggers: "no such module: rtree" 
... 

を私は、メッセージを無視しようとしました私のモデルは正しく保存されませんでした。

Spatialiteライブラリが使用されているようで、「RTree」拡張機能が有効になっていますが、まだエラーメッセージが表示されるので、少し困惑します。 オンラインで利用可能なこのエラーに関する情報はあまりありません。 RTree Documentationはsqlite.org/rtree.htmlにありますが、「サポートされている拡張機能」の下にリストされているので、すでにspatialiteに含まれているという印象を受けました。

私は本当に自分のsqliteライブラリをコンパイルする必要がありますか? RTreeが既に含まれている.dllを誰かに提供できますか?私は何か完全に間違っているのですか?どんな助けでも感謝しています!

+0

Python 2.6.4 on Windows7 32 Djangoトランク Spatialite 2.3。1 – Hans

答えて

1

Hans、spatialiteはSQLITE3の拡張です。

このオプションでSQLite3を具体的にコンパイルする必要があります。たとえば、MacのデフォルトのバージョンはRTREEでコンパイルされません。しかし、私はあなたのpythonのインストール& pysqliteおそらくsqlite3または別のバージョンの元のバージョンを使用してsqlite3が含まれるべきだと思います。

あなたは、どのバージョンがPythonで使用されているかを見るためにsqlite3.versionを試すことができます。また

あなたがのsetup.cfg変更、setup.py installを実行する前に、すなわち正しい設定オプションでpysqliteのモジュールを再インストールする必要があり、注意してください。指し示すため

[build_ext] 
#define= 
include_dirs=PATH_TO_INCLUDE 
library_dirs=PATH_TO_LIBS 
libraries=sqlite3 
#define=SQLITE_OMIT_LOAD_EXTENSION 

http://www.gaia-gis.it/spatialite/install-windows.html

+0

清算していただきありがとうございます。何らかの理由で私はspatialiteに標準のsqliteライブラリも含まれているという印象を受けました。 私は最新のバージョンのpysqliteをダウンロードし、あなたの提案に従ってsetup.cfgを変更し、次に 'setup.py build_static install'(pysqliteのreadmeの指示に従って)を実行しようとしましたが、次の出力が得られます:

 running build_static running build_py running build_ext Downloading amalgation. Extracting sqlite3.c Extracting sqlite3.h building 'pysqlite2._sqlite' extension error: Unable to find vcvarsall.bat 
Hans

+0

私が知っている限り、このvcvarsall.batはMicrosoftのVisual Studioの一部です。 私はこのソフトウェアを所有しておらず、経験もないので、rtree拡張が含まれているSqliteのプリコンパイル済みのバージョンを探しています。 このようなファイルを削除したり、ヘルプを見つけることができれば、非常に感謝しています。 – Hans

+0

こんにちはハンス、はい私は、pysqliteのセットアップはsqlite3をコンパイルしようとしていると思う...それはVisual studioが必要です。私はしばらくの間、Windowsマシンを使用していないので、私は本当にあなたを助けることはできません。私はspatialite + geodjangoセットアップをかなり簡単に(もっと簡単にMac上で)得ることができました – ismail

1

感謝をイシを私は正しい方向へ。

pysqliteがR * TREE拡張を有効にしていないsqliteバイナリを作成したという問題がありました。

バージョン2.5.6から「将来のWindowsバイナリと--build-staticを使ったコンパイルではデフォルトでRTreeがサポートされます」という私に非常に感謝してくれたpysqliteの開発者(link text)に連絡しました。 "

問題を解決しました。皆さんありがとう。

関連する問題