标签: pysqlite

在OS X上安装python(GeoDjango)的Spatialite

我正在试图为GeoDjango安装Spatialite!

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

但这不会安装任何数据库,即Spatialite.下一步是尝试安装Spatialite本身,但Django docs没有提供特定于Homebrew的指令.

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

但它不起作用......似乎我pysqlite与OS X附带的非空间启用的SQLite版本相关联,而不是我从Homebrew安装的Spatial-ised版本,我在Django尝试时遇到此错误连接到db:

"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".

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

$ spatialite geodjango.db "SELECT InitSpatialMetaData();"  
SQLite header and source version mismatch  
2013-10-17 12:57:35 c78be6d786c19073b3a6730dfe3fb1be54f5657a  
2013-09-03 17:11:13 7dd4968f235d6e1ca9547cda9cf3bd570e1609ef
Run Code Online (Sandbox Code Playgroud)

在这一点上不确定是什么问题.

SO上有其他人已经走过了KyngChaos路线并且最终得到了相同的"两个SQLite和pysqlite必须配置为允许加载扩展"错误我从Homebrew路线得到了无论如何.

我发现这张票#17756用于添加pyspatialite对Django的支持 - pyspatialite应该是一种更简单的方式来处理pip install所有事情但不幸的是它也不起作用(请参阅对票底的评论).

我有点不愿意开始尝试从源头开始构建所有内容,因为我似乎可能会再次遇到同样的问题,但花费数小时谷歌搜索有关神秘的编译器错误,魔术标志和路径等的信息.

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

sqlite django pysqlite geodjango spatialite

9
推荐指数
1
解决办法
3385
查看次数

在SQLite中将DateTime数据存储为julianday会不会烦恼?

SQLite文档指定在DB中存储日期时间值的首选格式是使用Julian Day(使用内置函数).

但是,我在python(pysqlite,SQLAlchemy)中看到的所有框架都将datetime.datetime值存储为ISO格式的字符串.他们为什么这样做?

我通常会尝试调整框架以将日期时间存储为julianday,这非常痛苦.我开始怀疑这是值得的.

请与我分享您在这个领域的经验.坚持julianday有意义吗?

python sqlite datetime sqlalchemy pysqlite

8
推荐指数
2
解决办法
1522
查看次数

在对象销毁时清理内部pysqlite连接

我有一个内部数据库连接的对象,它在整个生命周期中都是活动的.在程序运行结束时,必须提交和关闭连接.到目前为止,我已经使用了一个显式close方法,但这有点麻烦,特别是当调用代码中发生异常时.

我正在考虑使用这种__del__方法来关闭,但经过一些在线阅读后我有所顾虑.这是一种有效的使用模式吗?我可以确定内部资源是否可以__del__正确释放?

这次讨论提出了类似的问题但没有找到令人满意的答案 我不想有一个显式的close方法,并且使用with不是一个选项,因为我的对象不像开放式播放关闭那样简单,而是作为另一个更大的对象的成员保存,使用它在GUI中运行时.

C++有完美的工作析构函数,可以安全地释放资源,所以我认为Python也有同意的东西.由于某种原因,似乎并非如此,社区中的许多人发誓反对__del__.那么替代方案是什么?

python destructor pysqlite

7
推荐指数
2
解决办法
3345
查看次数

pysqlite - 如何保存图像

我需要在python中将图像文件保存到sqlite数据库中.我找不到解决方案.我该怎么做?

提前致谢.

python sqlite blob image pysqlite

7
推荐指数
1
解决办法
1万
查看次数

找不到符号:_sqlite3_enable_load_extension - 通过自制程序安装的sqlite

症状:在我的Django应用程序,当我打电话from pysqlite2._sqlite import *,我得到了回溯Symbol not found: _sqlite3_enable_load_extension

背景:

  • 我已经使用homebrew(python 2.7.13)安装了python,它自动安装了sqlite
  • 我正在使用命令行工具macOS 10.12,Xcode 8.2.1运行macOS 10.12.3
  • 我用pip安装了pysqlite(pysqlite 2.8.3)

我试过了

  • brew uninstall sqlitebrew uninstall python和重新安装
  • 将这些添加到我的.bash_profile

    export PATH="$(brew --prefix sqlite)/bin:$PATH"
    LDFLAGS="-L/usr/local/opt/sqlite/lib"
    CPPFLAGS="-I/usr/local/opt/sqlite/include"
    export PKG_CONFIG_PATH=“/usr/local/opt/sqlite/lib/pkgconfig”
    
    Run Code Online (Sandbox Code Playgroud)
  • python -c"import sqlite3"不会返回任何错误

追溯的要点:https://gist.github.com/xwchen/e9704fa34f0463d2117fe9fbb37922a1

python sqlite homebrew pysqlite

7
推荐指数
2
解决办法
2425
查看次数

在Django/sqlite中更改text_factory

我有一个django项目,它使用可以由外部工具写入的sqlite数据库.该文本应该是UTF-8,但在某些情况下,编码会出错.文本来自外部源,因此我无法控制编码.是的,我知道我可以在外部源和数据库之间写一个"包装层",但我不想这样做,特别是因为数据库已经包含了很多"坏"数据.

sqlite中的解决方案是将text_factory更改为: lambda x: unicode(x, "utf-8", "ignore")

但是,我不知道如何告诉Django模型驱动程序.

我得到的例外是:

'Could not decode to UTF-8 column 'Text' with text' in /var/lib/python-support/python2.5/django/db/backends/sqlite3/base.py in execute

不知怎的,我需要告诉sqlite驱动程序不要尝试将文本解码为UTF-8(至少不使用标准算法,但它需要使用我的故障安全变体).

python sqlite django pysqlite

6
推荐指数
1
解决办法
3824
查看次数

基本的pySQLite示例?

Gang,我开始玩pySQLite了,我正在尝试找一个例子,说明如果在db中存在新记录之前如何在插入新记录之前查询db的现有记录.我觉得我忽略了一个非常基本的功能.

谢谢!

python sqlite pysqlite

6
推荐指数
1
解决办法
4090
查看次数

Jupyter 缺少 _sqlite3 和 pysqlite2

试图让 jupyter (ipython3) 在 Python3.5 上运行,我使用安装它

sudo pip3 install jupyter
Run Code Online (Sandbox Code Playgroud)

但是,当尝试启动 jupyter notebook 时,我收到了模块 _sqlite3 和 pysqlite2 丢失的错误。我尝试通过 pip3 安装它们。对于 pysqlite2,似乎没有可用的版本(?)。对于 sqlite3 我得到

运行时错误:不得从 pypi 下载包“sqlite3”

Traceback (most recent call last):   File "/usr/local/lib/python3.5/site-packages/notebook/services/sessions/sessionmanager.py", line 10, in <module>
    import sqlite3   File "/usr/local/lib/python3.5/sqlite3/__init__.py", line 23, in <module>
    from sqlite3.dbapi2 import *   File "/usr/local/lib/python3.5/sqlite3/dbapi2.py", line 27, in <module>
    from _sqlite3 import * ImportError: No module named '_sqlite3'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/usr/local/bin/jupyter-notebook", …
Run Code Online (Sandbox Code Playgroud)

linux sqlite pysqlite python-3.x jupyter-notebook

6
推荐指数
2
解决办法
7735
查看次数

如何在python中使用最新的sqlite3版本

我需要在Amazon Linux中将sqlite版本3.8或更高版本与python一起使用。

我将sqlite安装更新为最新版本:

$ sqlite3 -version
3.22.0 2018-01-22 18:45:57 0c55d179733b46d8d0ba4d88e01a25e10677046ee3da1d5b1581e86726f2171d
Run Code Online (Sandbox Code Playgroud)

我也更新了pysqlite版本

pip install --upgrade pysqlite
Run Code Online (Sandbox Code Playgroud)

但是,我的pysqlite似乎仍然仅支持sqlite版本3.7:

$ python
>>> import sqlite3
>>> sqlite3.version
'2.6.0'
>>> sqlite3.sqlite_version
'3.7.17'
>>>
>>> from pysqlite2 import dbapi2 as sqlite
>>> sqlite.version
'2.8.3'
>>> sqlite.sqlite_version
'3.7.17'
Run Code Online (Sandbox Code Playgroud)

如何更新sqlite python API以支持较新版本的sqlite?

python sqlite pysqlite

6
推荐指数
2
解决办法
1813
查看次数

sqlite3与python2.5,pysqlite和apsw有什么区别

我想知道python2.5,pysqlite和apsw的 sqlite3之间的区别?当我尝试使用python2.5在windows vista上安装pysqlite时,我有一个颠簸的运行,请参阅以下内容:

  1. http://sqlite.org/download.html下载sqlite 并将它们解压缩到windows/system32文件夹中并将sqlite3.dll放入c:/python25/Lib文件夹
  2. 下载pysqlite windows安装程序
  3. 当试图在python shell中运行以下时:

    >>> from pysqlite2 import test
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "pysqlite2\test\__init__.py", line 35, in <module>
        from pysqlite2.test import dbapi, types, userfunctions, factory, transactions,\
      File "pysqlite2\test\dbapi.py", line 27, in <module>
        import pysqlite2.dbapi2 as sqlite
      File "pysqlite2\dbapi2.py", line 27, in <module>
        from pysqlite2._sqlite import *
    ImportError: No module named _sqlite
    
    Run Code Online (Sandbox Code Playgroud)

我想知道任何有以上三种类型的sqlite绑定到python的经验可以评论他们的优点和缺点如表演我想知道是否值得尝试pysqlite或apsw

谢谢

python sqlite pysqlite

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