如何使用特定模块(spellfix1)编译Sqlite for Windows?

时间:2018-04-12 16:21:18

标签: python windows sqlite compilation

为了使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?怎么样?

到目前为止我尝试了什么

  • 下载https://sqlite.org/2016/sqlite-src-3110100.zip,解压缩
  • 运行:

    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上执行相同操作。

0 个答案:

没有答案