pyodbc 连接到 sqlite 数据库
Posted
技术标签:
【中文标题】pyodbc 连接到 sqlite 数据库【英文标题】:pyodbc connection to sqlite database 【发布时间】:2017-08-29 08:19:46 【问题描述】:我有一个非常简单的 python 脚本,我尝试使用 :
#!/usr/bin/env python
import sqlite3
import pyodbc
con_str = 'DRIVER=SQLITE3;DATABASE=%s' % ('/tmp/test.db')
db = pyodbc.connect(con_str)
当我执行这个脚本时,我收到错误:
Traceback (most recent call last):
File "./test.py", line 8, in <module>
db = pyodbc.connect(con_str)
pyodbc.Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib '/usr/lib64/libsqlite3odbc.so' : file not found (0) (SQLDriverConnect)")
/usr/lib64/libsqlite3odbc.so
是一个文件链接,存在:
$ ll /usr/lib64/libsqlite3odbc*
-rwxr-xr-x 1 root root 148232 Sep 29 2012 /usr/lib64/libsqlite3odbc-0.81.so
lrwxrwxrwx 1 root root 22 Aug 29 07:52 /usr/lib64/libsqlite3odbc.so -> libsqlite3odbc-0.81.so
这里有一些 odbc 文件:
$ cat /etc/odbc.ini
[SQLite3 Datasource]
Driver = SQLITE3
$ cat /etc/odbcinst.ini
[SQLITE3]
Description = SQLite ODBC 3.X
Driver = /usr/lib64/libsqlite3odbc.so
Setup = /usr/lib64/libsqlite3odbc.so
Threading = 2
FileUsage = 1
UsageCount = 1
已安装版本 (rpm):pyodbc-3.0.7-1.x86_64
、sqliteodbc-0.81-1.2.x86_64
。
我应该怎么做才能消除这个错误?
【问题讨论】:
您是否有理由不使用本机sqlite3
驱动程序?有了这个,你可以简单地import sqlite3
然后conn = sqlite3.connect('/path/to/db.sqlite3')
。
ldd /usr/lib64/libsqlite3odbc.so
是否能够找到所有需要的依赖项?
@FlipperPA 我们的应用程序在不同的服务器上使用不同的数据库(Oracle、Sybase、SQlite,...)。我们想使用相同的模块(pyodbc)创建连接。
【参考方案1】:
解决方案是安装 0.9995 版本的 SQLite ODBC 驱动程序。
【讨论】:
以上是关于pyodbc 连接到 sqlite 数据库的主要内容,如果未能解决你的问题,请参考以下文章
如何在 python 中使用 pyodbc 连接到本地优势数据库?
使用 sqlalchemy 和 pyodbc 连接到 SQL Server 2012
如何将 pyodbc 连接到 Access (.mdb) 数据库文件