我试图摆脱的错误信息是:
AttributeError:'sqlite3.Connection'对象没有属性'enable_load_extension'
我有'easy_install'-ed最新的sqlite3版本和python以某种方式知道它存在,因为sqlite3.version_info产生3.6.13.在此版本中,Connection应具有"enable_load_extension"属性.
我认为正在进行的是python仍然使用本机sqlite3模块,我认为是2.4.1,因为sqlite3.version(iso sqlite3.version_info)产生2.4.1.
问题是如何强制python使用新的sqlite3模块进行所有sqlite3调用?
是否有一种简单的方法可以使用符合DB的sqlite3模块以只读方式打开sqlite3数据库?我想在不支持锁定的文件系统上以只读方式访问数据库.我知道C api支持这个,但无法找到一种方法来使用sqlite3接口.
如果我有以下代码:
conn = sqlite3.connect('abc.db')
Run Code Online (Sandbox Code Playgroud)
..abc.db如果它不存在,它将创建调用的数据库文件。如果我不想创建新文件并且只希望在文件已经存在的情况下连接成功,我该怎么办?
我想打开一个 sqlite3 数据库,并立即检查它是否以只读方式打开。因为我知道我需要写入它,所以我想在启动时立即返回一个错误,而不必等到程序第一次尝试写入的时候。
我看到有一个 sqlite3 C API 函数sqlite3_db_readonly()。是否可以从 Python API 访问此函数?或者是否有其他方法可以通过 Python API 检查数据库是否为只读?