相关疑难解决方法(0)

获得适用于x64 c的SpatiaLite + SQLite系统#

我需要在x64窗口下创建和访问一个spaceite扩展的SQLite数据库.

我已经下载了所谓的最新版本1.0.92.0 sqlite-netFx45-static-binary-bundle-x64-2012-1.0.92.0.zipSystem.Data.SQLite.它是从我的Visual Studio(2012)项目中引用的,并且它本身似乎工作得很好.

我还有最新的预编译x64 spatiaLite版本4.1.1,名为spatialite-4.1.1-DLL-win-amd64.zip来自spatialite的所有dll都存在于执行目录中.

当我尝试加载扩展时:

using (var conn = new SQLiteConnection("Data Source=\"" + _sqLiteFullName + "\""))
{
    conn.Open();
    conn.EnableExtensions(true);
    conn.LoadExtension("libspatialite-4.dll");
    ...
}
Run Code Online (Sandbox Code Playgroud)

我得到一个AccessViolationException(试图读取受保护的内存.这通常表明其他内存已损坏)LoadExtension().

我注意到使用PE Deconstructor(确定dll/exe的bitnewss的软件),它说我的System.Data.SQLite.dll(来自x64包)的副本实际上是32位.那是问题吗?

我该如何解决这个问题?

有没有其他人让spatiaLite在x64上工作?

c# database sqlite gis spatialite

10
推荐指数
1
解决办法
5128
查看次数

在Windows上对SQLite使用spatialite扩展

我知道之前有过类似的问题.但是,我在此发现的所有问题都涉及一些非常具体的系统设置,这些设置不适合我(因为我的也是如此).

系统:

  • Windows 7 64位
  • Python 3.4 64位
  • sqlite3 2.6.0(我猜的是附带Python)
  • Spatialite Windows二进制文件2.3.1(其他重要的东西?)

如何激活' spatialitesqlite3'模块的扩展名?

我尝试了什么(类似问题的其他人说它有效的方式):

  • https://www.gaia-gis.it/spatialite-2.3.1/binaries.html下载:
    • libspatialite-win-x86-2.3.1.zip
    • proj-win-x86-4.6.1.zip
    • geos-win-x86-3.1.1.zip
    • libiconv-win-x86-1.9.2.zip
  • 将所有这些解压缩到C:\上的同一个文件夹中
  • (也尝试过只将DLL放入该文件夹)
  • 将该文件夹放入我的系统PATH变量

然后,跑步

import sqlite3

conn = sqlite3.connect(":memory:")
conn.enable_load_extension(True)
conn.execute('SELECT load_extension("libspatialite-2.dll")')
Run Code Online (Sandbox Code Playgroud)

conn.execute("SELECT load_extension('libspatialite-2.dll')")
sqlite3.OperationalError: The specified module could not be found.
Run Code Online (Sandbox Code Playgroud)

我还能尝试做些什么呢?

python windows sqlite spatialite

5
推荐指数
1
解决办法
3019
查看次数

django.core.exceptions.ImproperlyConfigured:SpatiaLite 需要配置 SQLite 以允许扩展加载

spatialiteDjango项目安装了,但是当我尝试迁移时它向我显示此错误:

File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/django/contrib/gis/db/backends/spatialite/base.py", line 44, in get_new_connection
    raise ImproperlyConfigured(
django.core.exceptions.ImproperlyConfigured: SpatiaLite requires SQLite to be configured to allow extension loading.
Run Code Online (Sandbox Code Playgroud)

我不知道如何弄清楚。我 通过更改 libexec/setuptools/setup.cfg 文件来尝试此操作

[build_ext]
 #define=
include_dirs=/Library/Frameworks/SQLite3.framework/unix/include
library_dirs=/Library/Frameworks/SQLite3.framework/unix/lib
libraries=sqlite3
#define=SQLITE_OMIT_LOAD_EXTENSION
Run Code Online (Sandbox Code Playgroud)

我已经通过brew安装了spatialite,然后我像这样更改了settings.py:

DATABASES = {
 'default': {
    'ENGINE': 'django.contrib.gis.db.backends.spatialite',
    'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
 }
}
SPATIALITE_LIBRARY_PATH='/usr/local/lib/mod_spatialite.dylib'
Run Code Online (Sandbox Code Playgroud)

python django spatialite

5
推荐指数
1
解决办法
2378
查看次数

标签 统计

spatialite ×3

python ×2

sqlite ×2

c# ×1

database ×1

django ×1

gis ×1

windows ×1