2016-09-30 117 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这在同一目录下(覆盖,如果有任何冲突)

    复制所有先前解压缩的文件到您的目录中,并贴到您的脚本目录中虚拟环境

    这一切都会重新启动您的电脑,如果有必要,取消激活并重新激活您的虚拟环境和代码...