到SQLite数据库
问题描述:
pyodbc方面,我有很简单的Python脚本中,我尝试使用pyodbc连接到SQLite数据库:到SQLite数据库
#!/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
。
我该怎么做才能消除这个错误?
答
解决方案是安装0.9995版本的SQLite ODBC驱动程序。
有没有原因你没有使用本地'sqlite3'驱动程序?用这个,你可以简单地'import sqlite3'然后'conn = sqlite3.connect('/ path/to/db.sqlite3')''。 – FlipperPA
'ldd/usr/lib64/libsqlite3odbc.so'能否找到所需的所有依赖关系? –
@FlipperPA我们的应用程序在不同的服务器上,可与不同的数据库(Oracle,Sybase,SQlite等)协同工作。我们希望使用相同的模块(pyodbc)创建连接。 – Yama