根据unixODBC驱动程序页面(直接来自 90 年代),我应该从以下位置下载 SQLite3 驱动程序:http://www.ch-werner.de/sqliteodbc
sqliteodbc
该页面提供的源代码构建说明可在此处获得:http://www.ch-werner.de/sqliteodbc/html/index.html
根据该页面,我们应该将源代码解压到一个目录中,然后运行以下命令:
1)./configure
2)make
3)make install
但是,当我./configure
在目录中运行时,出现以下错误:
configure: error: No usable SQLite header/library on this system
我应该怎么办?
答案1
为了处理configure: error: No usable SQLite header/library on this system
,必须:
sudo apt-get install libsqlite3-dev
执行此操作后,您可能仍会收到以下错误:
configure: error: ODBC header files and/or libraries not found
在这种情况下,请执行以下操作:
sudo apt-get install unixodbc-dev unixodbc-bin unixodbc
您可能已经有了那里列出的一些包,但是如果您收到错误,则表示您缺少了unixodbc-dev
。
好的,现在你应该:
1)./configure && make
没有问题
2) 请make install
参阅此处的说明以了解所有相关信息checkinstall
:我通过获取其源代码来安装一个程序,然后运行“sudo make install”;如何让“apt-get”知道它?
现在,进一步阅读为驾驶员提供的[说明] sqliteodbc
,我们必须:
odbcinst.ini
1)正确设置
在编辑器中打开odbcinst.ini
(您可能需要超级用户权限,并且您需要知道文件在哪里 - 通常它在/etc 中,因此我们可以这样做:)sudo gedit /etc/odbcinst.ini
,然后添加以下内容:
[SQLite3]
Description=SQLite ODBC Driver
Driver=/usr/local/lib/libsqlite3odbc.so
Setup=/usr/local/lib/libsqlite3odbc.so
Threading=4
Description
使用您想要的任何字符串进行设置,但请确保安装驱动程序时提供的路径正确Driver
。为了找出/确认提供了哪些:要么或只是打开并检查您拥有哪些文件。例如,根据说明中的示例,您应该指向,但我只有。如果您同时拥有两者,您可以像这样进行两个输入:Setup
*.so
sqliteodbc
*.so
grep
/usr/local/lib/
*.so
/usr/local/lib/libsqliteodbc.so
/usr/local/lib/libsqlite3odbc.so
[SQLite3]
Description=SQLite ODBC Driver
Driver=/usr/local/lib/libsqlite3odbc.so
Setup=/usr/local/lib/libsqlite3odbc.so
Threading=2
[SQLite]
Description=SQLite ODBC Driver
Driver=/usr/local/lib/libsqliteodbc.so
Setup=/usr/local/lib/libsqliteodbc.so
Threading=2
另外,请确保为线程选择合适的值。例如,如果您有 8 个核心,那么这也许Threading=4
是合理的。
为了完成第 2 步,我将进行如下设置:
[MYGOOFYSQLITE3DRIVERTAG]
Description=SQLite ODBC Driver
Driver=/usr/local/lib/libsqlite3odbc.so
Setup=/usr/local/lib/libsqlite3odbc.so
Threading=2
2) 可选:在 --- 中设置 DNS~/.odbc.ini
只需按照说明操作即可,但请注意,您也可以使用无 DNS 的 SQLite/3。例如,使用pyodbc
Python:
import pyodbc
connection_string = "Driver=MYGOOFYSQLITE3DRIVERTAG;Database=/path/to/database.db"
connection = pyodbc.connect(connection_string)
请注意,对于Driver
密钥,我引用了在 中为驱动程序提供的标签odbcinst.ini
。也许你想耍点小聪明,也许你不想——关键是密钥取决于你设置的内容,或者其他程序自动设置的内容,因此如果你需要知道驱动程序的名称,请在 中查找odbcinst.ini
。
有关连接字符串的更多详细信息,请参阅sqliteodbc
我们之前提到的驱动程序说明。