【问题标题】:Updating the SQLite3 build on my python install在我的 python 安装上更新 SQLite3 构建
【发布时间】:2017-10-11 09:11:14
【问题描述】:

这里是新手程序员,我正在尝试更新我的 Python 安装上的 SQLite3(我目前有 3.6.11 版,而我至少需要 3.6.19 版,因为这是第一个支持外键)。不过,这是我的问题:我不知道该怎么做。我对命令行几乎一无所知,而且我真的不知道在我的 python 安装中要替换哪些文件(如果有的话)。在有人问之前,我已经在使用最新的 Pysql 版本——它不是最新的。任何人都可以给我一些指示,或者关于如何更新它的指南?

我在 Mac OSX 10.5.8 上,使用 python 2.6。

【问题讨论】:

    标签: python sqlite


    【解决方案1】:

    我建议在命令行中使用“pip”命令。

    pip search sqlite
    pip install pysqlite
    

    【讨论】:

    • 确保安装 setuptools。但 pip 是在 python 中执行此操作的首选方法。或尝试“easy_install pip”
    【解决方案2】:

    我刚刚在 Mavericks 和 Mountain Lion 中安装了这个。

    SO article 提到使用 build_static 方法,他们说该方法检索最新版本的 sqlite 合并。由于某种原因它不起作用(即它似乎没有下载或使用它)

    我最终做的是

    1. 以 tarball 格式下载 pysqlite
    2. 下载最新的sqlite源码合并
    3. 将 pysqlite 解压缩到其文件夹中
    4. 解压 sqlite 并复制到 pysqlite 文件夹
    5. 打开 setup.cfg 并注释掉所有指令
    6. 在终端中,进入 pysqlite 文件夹,然后:

    $ python setup.py build_static install

    这使用来自最新 sqlite 源的库编译 pysqlite。然后在 Python 中,我将其用作:

    import pysqlite2.dbapi2 as sqlite3

    【讨论】:

    • 这个解决方案对我有用。在 setup.py 命令成功运行之前,我确实需要在 pysqlite 文件夹中配置/make/make install。
    • 这对我也有帮助。谢谢!!
    【解决方案3】:

    我最近从源代码安装了 python,并使用以下命令从源代码安装 SQLite 和从源代码安装 Python 2.7.13。

    对于 SQLite3,您可以使用以下命令 $SQLITE_INSTALL_LOCATION

    $ curl -O http://www.sqlite.org/sqlite-autoconf-3070603.tar.gz
    $ tar xvfz sqlite-autoconf-3070603.tar.gz
    $ cd sqlite-autoconf-3070603
    $ ./configure --prefix=$SQLITE_INSTALL_LOCATION --disable-static CFLAGS="-g"
    $ make && make install
    

    然后,当我编译我的 python 时,我在 Python 源代码的根目录中编辑了 setup.py

    $ curl -O https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tgz
    $ tar xvfz Python-2.7.13.tgz
    

    Python-2.7.13/setup.py -- 在此处添加 SQLite 安装路径: ```

    ...
    # We hunt for #define SQLITE_VERSION "n.n.n"
    # We need to find >= sqlite version 3.0.8
    sqlite_incdir = sqlite_libdir = None
    sqlite_inc_paths = [ '/usr/include',
                         '/usr/include/sqlite',
                         '/usr/include/sqlite3',
                         '/usr/local/include',
                         '/usr/local/include/sqlite',
                         '/usr/local/include/sqlite3',
                       $SQLITE_INSTALL_LOCATION/include,
                     ]
    ...
    

    一旦你更改了 python 源代码中的 setup.py,就可以编译和安装 python,假设安装位置是 $PYTHON_INSTALL_LOCATION

    $ cd  Python-2.7.13
    $ LD_RUN_PATH=$SQLITE_INSTALL_LOCATION/lib ./configure --prefix=$PYTHON_INSTALL_LOCATION --enable-shared --enable-unicode=ucs4
    $ LD_RUN_PATH=$SQLITE_INSTALL_LOCATION/lib make 
    $ LD_RUN_PATH=$SQLITE_INSTALL_LOCATION/lib make install
    

    完成此操作后,您应该在 $PYTHON_INSTALL_LOCATION/bin/python 处安装支持 SQLite3 的 Python 版本

    希望这会有所帮助!

    【讨论】:

      【解决方案4】:

      免责声明:我不是 Mac 用户,但根据常识,我告诉你 这个信息。

      您可以按照以下说明进行操作:

      使用自制软件

      正如page提到的:如果你需要升级sqlite,你可以使用Homebrew

      Homebrew 意味着一个额外的“软件管理器”。所以你应该知道如何使用它。

      从源码安装

      作为page 提及:

      1. 下载sqlite-autoconf package
      2. 编译并安装:

      $ tar xvfz sqlite-autoconf-3071502.tar.gz
      $ cd sqlite-autoconf-3071502
      $ ./configure --prefix=/usr/local
      $ make
      $ make install
      

      Homebrew 或 Source,验证它

      >>> import sqlite3
      >>> sqlite3.version_info
      (2, 4, 1)
      >>> sqlite3.sqlite_version_info
      (3, 6, 11)
      
      >>> from pysqlite2 import dbapi2 as sqlite3
      >>> sqlite3.version_info
      (2, 5, 5)
      >>> sqlite3.sqlite_version_info
      (3, 6, 18)
      

      也许您需要卸载以前版本的 pysqlite。无论如何,您应该阅读this answer 以更好地理解 sqlite/python 关系。

      【讨论】:

        【解决方案5】:

        https://pip.pypa.io/en/latest/installing.html

        python get-pip.py

        python [完整路径]

        python c:\folder\get-pip.py

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-11-02
          • 1970-01-01
          • 2011-11-17
          • 2017-09-06
          • 2021-04-27
          • 2010-11-11
          相关资源
          最近更新 更多