2016-09-30 113 views
3

我試圖讓Django的SQLite3接受空間查詢。 This tutorial建議我將它添加到設置:「無法找到SpatiaLite庫。」 Django

SPATIALITE_LIBRARY_PATH = 'mod_spatialite' 

將會產生這個錯誤:

django.core.exceptions.ImproperlyConfigured: Unable to load the SpatiaLite library extension "mod_spatialite" because: The specified module could not be found.

我也試着這樣做:

SPATIALITE_LIBRARY_PATH = r'C:\\Program Files (x86)\\Spatialite\\mod_spatialite-4.3.0a-win-x86\\mod_spatialite-4.3.0a-win-x86\\mod_spatialite.dll' 

如果我不加這個變量我我在遷移時收到此錯誤:

django.core.exceptions.ImproperlyConfigured: Unable to locate the SpatiaLite library. Make sure it is in your library path, or set SPATIALITE_LIBRARY_PATH in your settings.

謝謝..

回答

2

有趣的是,5天后我有同樣的問題。閒逛的一點點後,我得到它的工作:

SPATIALITE_LIBRARY_PATH = 'mod_spatialite' 

,並從mod_spatialite-X.X.X-雙贏x86.7z所有DLL文件解壓到你的Python安裝目錄。該DLL顯然需要與python.exe在同一個文件夾中。另外我想根據你的python安裝,mod_spatialite軟件包需要32/64位。如果你錯過了一些DLL,不管缺少什麼dll文件,你都會得到同樣的錯誤「找不到指定的模塊」,所以這有點讓人誤解。

http://www.gaia-gis.it/gaia-sins/

下載我用mod_spatialite穩定版本4.3.0a 86與Python 3.5.2 32位。

對同一問題的其他線程與各種答案:

0

這是怎麼裏面的virtualenv安裝SpatiaLite(幾乎)爲Python 3:

  1. 下載cyqlite啓用R-Tree的特殊SQLite構建。它是required by GoeDjango
  2. 下載mod_spatialite(Windows可執行文件是在粉紅色框位於頁面底部),即mod_spatialite-[version]-win-x86.7z
  3. 解壓mod_spatialite文件(拼合樹,忽略存檔的文件夾)到virtuelenv Scripts文件夾。

這部分我不喜歡,但我不能找到一個可行的解決方案,而無需接觸主要的Python3安裝。

  • 重命名或以其他方式備份c:\Python35\DLLs\sqlite3.dll
  • cyqlite uznip sqlite3.dll文件到c:\Python35\DLLs\

  • 獎勵:https://gis.stackexchange.com/a/169979/84121

    0

    HOW ACTIVATE正確SPATIALITE在WINDOWS操作系統中的虛擬DJANGO環境,如7,8,10

    我希望我的回答能夠幫助我的開發者朋友的安全,他們使用django默認提供的Sqlite通過空間鏈接來管理他們的地理數據,這個鏈接默認在python(3或+)中提供, 。我從你有一個預配置的虛擬環境的事實開始。要做的第一件事就是下載兩個拉:sqlite-dll-win32-x86-[version].zipmod_spatialite-[version]-win-x86.7z和unzipp這在同一目錄下(覆蓋,如果有任何衝突)

    複製所有先前解壓縮的文件到您的目錄中,並貼到您的腳本目錄中虛擬環境

    這一切都會重新啓動您的電腦,如果有必要,取消激活並重新激活您的虛擬環境和代碼...