为了使Levensthein distance(字符串类似)在Windows上与Sqlite一起使用,我要么:
需要找到已包含spellfix1
模块的Sqlite二进制版本
或使用此模块重新编译整个Sqlite for Windows,
最终目标是通过以下方式在Python中加载它:
import sqlite3
db = sqlite3.connect(':memory:')
db.enable_load_extension(True)
db.load_extension('./spellfix')
db.enable_load_extension(False)
...
c.execute('SELECT * FROM mytable WHERE editdist3(description, "Hello wrld") < 3')
问题:
我应该重新编译整个Sqlite for Windows,并用新版本替换C:\Python27\DLLs\_sqlite3.pyd
吗?如果是这样,怎么样?期望Python接受这个新编译的_sqlite3.pyd
文件是否安全?
或者我应该保留旧C:\Python27\DLLs\_sqlite3.pyd
并只编译外部模块spellfix1
?怎么样?
到目前为止我尝试了什么:
运行:
call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat"
cl ext\misc\spellfix.c
\ text \ misc \ spellfix.c(17):致命错误C1083:无法打开包含文件:'sqlite3ext.h':没有这样的文件或目录
在哪里找到标题,以及在cl.exe ...
中指定这些标题的位置?
注意:this is适用于Linux但我无法在Windows上执行相同操作。