【问题标题】:Python sqlite3 increase max columnsPython sqlite3增加最大列数
【发布时间】:2017-08-09 21:05:50
【问题描述】:

sqlite3 默认设置 SQLITE_MAX_COLUMN=2000,您可以重新编译 CLI 将限制增加到 32676。(SQLITE3 increase Max Columns)

如何将此设置转换为与 python 模块一起使用? (https://docs.python.org/2/library/sqlite3.html)

【问题讨论】:

  • 您需要重新编译 SQLite 库才能更改它。你在 Python 中所做的任何事情都无法克服这一点。
  • 我已经重新编译了 C 库,但我可以让 Python 照原样使用它吗?
  • 我不这么认为
  • 为了更好地表达它,我应该如何处理已编译的库以在 Python 中使用它?

标签: python sqlite


【解决方案1】:

您必须重新编译并重新安装_sqlite 模块。但是,这意味着依赖于这种特定行为的程序变得不可移植——您无法分发您的程序,因为您必须要求您的用户以相同的方式重新编译模块。但对于个人(或公司本地)使用没关系。

【讨论】:

  • 你能帮我理解如何做到这一点吗?我在 _sqlite 代码中没有看到对 SQLITE_MAX_COLUMN 的任何引用。这个模块与sqlite.org/download.html的代码有什么关系?
  • 它不是一个独立的模块。它是 libsqlite 的 python 包装器。所以你必须重新编译 libsqlite 并使用重新编译的 libsqlite 从源代码重新编译 Python。
【解决方案2】:

另一种方法是重新编译 libsqlite3 并通过 ctypes 或 cffi 使用它。像这样:https://gist.github.com/achimnol/3021995How to code and wrap with ctypes a python function needed as callback by sqlite3? 这样你就不需要重新编译 Python。

【讨论】:

    猜你喜欢
    • 2014-05-14
    • 2020-07-16
    • 1970-01-01
    • 2011-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多