sqlite
有一个官方实现:https://github.com/sqlite/sqlite
用 c
写的!
Python 的标准库自带了 sqlite
这两个 sqlite
是什么关系,是 Python 按照 sqlite
的协议,重写了一遍,还是 copy
了一份 github 上的 sqlite 代码?
同理:java、golang、rust、node、c# 上的 sqlite 和官方的 c 的 sqlite
是什么关系?重写还是 copy ?
sqlite
有一个官方实现:https://github.com/sqlite/sqlite
用 c
写的!
Python 的标准库自带了 sqlite
这两个 sqlite
是什么关系,是 Python 按照 sqlite
的协议,重写了一遍,还是 copy
了一份 github 上的 sqlite 代码?
同理:java、golang、rust、node、c# 上的 sqlite 和官方的 c 的 sqlite
是什么关系?重写还是 copy ?
python 是如何集成 sqlite 的?直接使用了 sqlite 的动态链接库吗?
是的,Python 中的 sqlite3 模块使用了 SQLite 的动态链接库。在 Python 中,sqlite3 模块是一个封装了 SQLite C 库的 Python 模块。Python 中的 sqlite3 模块在使用时会动态链接到操作系统中已经安装的 SQLite 动态链接库文件,以实现对 SQLite 数据库的访问。
当 Python 运行 sqlite3 模块的代码时,sqlite3 模块会调用 SQLite 动态链接库中的函数,例如 sqlite3_open() 和 sqlite3_prepare_v2() 等,来连接数据库、执行 SQL 语句等操作。Python 中的 sqlite3 模块提供了一组 Python API,使得用户可以使用 Python 代码来调用这些 SQLite C 库中的函数,从而方便地访问 SQLite 数据库。
需要注意的是,在不同的操作系统上,SQLite 动态链接库的名称和位置可能不同。在 Windows 操作系统上,SQLite 动态链接库通常命名为 sqlite3.dll,并存放在系统路径或者 Python 安装路径下的 DLLs 目录中。在 Linux 和 macOS 等 Unix-like 系统上,SQLite 动态链接库通常命名为 libsqlite3.so 或 libsqlite3.dylib,并存放在系统库路径中。在使用 sqlite3 模块时,需要确保操作系统中已经安装了 SQLite 动态链接库,并且该库文件的名称和路径正确。
pyav 也是这样的原理
15 回答8.4k 阅读
7 回答5.3k 阅读
6 回答6.8k 阅读✓ 已解决
8 回答6.2k 阅读
4 回答4.4k 阅读✓ 已解决
5 回答3.2k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
你混淆了 SQLite 不同场景下出现时的名词含义。
当我们在提到 SQLite 时,究竟指的是什么?
sqlite3
模块)。与之对标的是是pymysql
、math
、time
等等。你这个问题约等于是在问:
pymysql
是 Python 社区 “按照 Oracle MySql 的协议重写了一遍” 呢、还是 “copy 了一份 MySql 的代码” 呢?