问题标签 [pysqlite]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
3877 浏览

django - 在 OS X 上安装 Spatialite for python (GeoDjango)

我正在努力为 GeoDjango 安装 Spatialite!

我已经在使用 Homebrew,它通常简单方便,所以我最初尝试按照GeoDjango的Homebrew 说明进行操作。

但这没有安装任何数据库,即 Spatialite。下一步是尝试安装 Spatialite 本身,但 Django 文档没有提供特定于 Homebrew 的说明。

我发现这个教程看起来很完美——一个 Homebrew 和 virtualenv-friendly 安装的 Spatialite for GeoDjango。

但它不起作用......似乎我pysqlite的链接是与 OS X 附带的非空间启用版本的 SQLite 相关联,而不是我从 Homebrew 安装的空间化版本,当 Django 尝试时出现此错误连接到数据库:

“pysqlite 库不支持 C 扩展加载。SQLite 和 pysqlite 都必须配置为允许加载扩展才能使用 SpatiaLite。”

pysqlite 的作者没有回应我在 Github 上的求助请求,我也没有通过谷歌找到任何东西。

所以我回到绘图板并决定遵循 GeoDjango 文档中的“Mac OS X 特定说明” ......通过安装来自 KyngChaos 二进制包的各种地理库。

文档说“按照上面列出的顺序安装软件包”,但我发现如果不先安装就无法UnixImageIO安装PROJ。文档中下载 Spatialite 二进制文件的链接 ( http://www.gaia-gis.it/spatialite-2.3.1/binaries.html ) 已损坏,因此我使用了 KyngChaos 的“Spatialite Tools v4.1”。

继续下一步,我收到此错误:

目前还不确定出了什么问题。

SO上还有其他人已经走了KyngChaos路线,最终得到了我从Homebrew路线得到的相同的“SQLite和pysqlite都必须配置为允许加载扩展”错误。

我发现这张票 #17756用于添加pyspatialite对 Django 的支持 -pyspatialite应该是一种更简单的方法,pip install但不幸的是它也不起作用(请参阅票底部的评论)。

我有点不愿意开始尝试手动从源代码构建所有内容,因为我可能会再次遇到同样的问题,但要花几个小时在谷歌上搜索有关神秘编译器错误、魔术标志和路径等的信息.

我准备放弃,只使用 Postgres/PostGIS。

0 投票
0 回答
635 浏览

ios - iOS 上的 SQLite (Spatialite) 查询适用于 64 位模拟器,但仅此而已

我有一个由 Django 管理命令生成的 Spatialite 数据库,我将其嵌入到 iOS 应用程序中。数据库完美打开,但我发现只有在 64 位设备上运行时,才能在 iOS 上查询数据库。任何其他设备,无论是模拟的还是其他的,都会SQLITE_NOTADB在调用时产生输出,并sqlite3_prepare_v2带有错误消息file is encrypted or is not a database

显然,生成此数据库的 Mac 是 64 位机器,但 SQLite 数据库应该与位无关,所以我不认为这应该是个问题。也许这不适用于 Spatialite 数据库?sqlite3_open是否有任何标志可以与任何 SQLite 函数(可能sqlite3_prepare_v2pragma命令)一起使用,以使其以与 64 位拱 iOS 相同的方式读取文件?或者也许有一种方法可以从 django 以更平台兼容的格式生成 Spatialite db?欢迎在这里提出任何建议。

这是我的代码片段,如果有人能发现任何明显的问题:

启动应用程序并在非 64 位 iOS 平台上运行getLockupsForRegion:会产生日志输出:

以及arm64下的日志输出:

版本:

  • 蟒蛇:2.7.5
  • 姜戈:1.6
  • PySqlite:2.6.3
  • Sqlite(在机器上生成 Spatialite db):3.8.1
  • Spatialite(在机器上生成 Spatialite db):4.1.1
  • Sqlite(在 iOS 上):3.8.1
  • Spatialite(在 iOS 上):4.1.1

对此的任何建议将不胜感激!

0 投票
1 回答
42 浏览

python - pysqlite 不接受 qmark 参数化

我有一个与Python pysqlite中已回答的问题类似的问题, 不接受我的 qmark 参数化

我的问题如下:我想要一个类似某物的字符串的参数化搜索,而不是字符串本身。

这是我的声明:

pysqlite 返回以下错误:

我明白这是因为 qmark 被解释为文字。但是,我不知道如何在不将 qmark 解释为文字的情况下使用 qmark 指定这样的“like”搜索。

以下搜索成功:

但是,据我了解,这正是应该使用 format() 函数的方式。

0 投票
1 回答
12794 浏览

python - 使用 SQLite 获取游标的最后一行

在 Android 上,我非常习惯于使用 cursor.moveToLast() 来获取游标中的最后一项。但是,我似乎找不到 Python 的 SQLite 的等价物。是否有一个函数可以让我获取游标的最后一行?

我可以调用 cursor.fetchall() 并获取列表中的最后一项,但是还有比这更有效的方法吗?谢谢。

0 投票
3 回答
1139 浏览

python - pysqlite 的 IntegrityError:区分 'NOT NULL' 和 'UNIQUE' 违规

在 pysqlite 中,违反 aNOT NULLUNIQUE约束同样会引发 IntegrityError。不幸的是,这种异常类型不提供错误代码,而只提供一条消息。

所以,假设我想忽略唯一约束违规,因为我知道这在给定数据上是安全的,但应该报告键列中的 Null 值。

我想出了以下解决方案:

但是,解析错误消息似乎是错误的,并且可能不可靠。有没有更好的方法来做到这一点,甚至可以使用con.executemany()

0 投票
0 回答
2749 浏览

linux - python3.4.2如何安装pysqlite

我使用kali linux,我需要python3.4.2的sqlite3驱动程序我尝试了pysqlite安装,但出现错误。请帮助我如何纠正错误提前谢谢

0 投票
1 回答
944 浏览

python - 安装 pysqlite 时出错

我正在尝试安装 pysqlite,但出现以下错误-

我也尝试过 pip .. 但没有运气!

谁能建议如何跟踪此错误?谢谢 !

0 投票
1 回答
1572 浏览

python - pandas python中的SQL查询

我正在用 python pandas 编写一个 SQL 查询:

错误:

如何切换到 Unicode 字符串?我正在使用python2.7。

0 投票
1 回答
551 浏览

python - 没有名为 pysqlite2._sqlite 的模块 烧瓶出错

嗨,我遇到了 No module named pysqlite2._sqlite 错误的问题

我正在使用带有烧瓶和 virtualenv 的 SQLalchemy

当我像这样按模型查询时

我收到以下错误

第一个错误是

所以我通过 pip install pysqlite 安装 pysqlite

我尝试通过重新安装 pysqlite

但同样的问题正在发生

我检查了 sqlahcemy 代码,它像这样导入模块

但是在控制台

从 pysqlite2 导入 dbapi2

正在工作中。

所以我检查了 pysqlite2 库文件夹

我发现有 _sqlite.so 文件。

问题是什么?

0 投票
1 回答
1773 浏览

python - 使用 sqlite3 / pysqlite 跨数据库连接

我有两个单独的数据库文件,每个文件都有匹配主键的表,但数据不同。我想根据另一个表中的值从一个表中提取行。在 CLI for 中sqlite3,我会这样做:

如何使用 重新创建这样的跨数据库连接pysqlite