无法通过 pyenv 在 Ubuntu 20.04 上将 Python 3.4 的 sqlite3.sqlite_version 降级到 运行 tox 测试

Can't downgrade Python 3.4's sqlite3.sqlite_version on Ubuntu 20.04 via pyenv to run tox test

设置:

我正在尝试将 sqlite3.sqlite_version 的 Python 3.4 降级为 运行 一些毒物测试,但没有成功。我在 Ubuntu 20.04。我能够成功地将它升级到 3.32.1:

PYTHON_CONFIGURE_OPTS="LD_RUN_PATH=/home/linuxbrew/.linuxbrew/Cellar/sqlite/3.32.1/lib \
LDFLAGS=-L/home/linuxbrew/.linuxbrew/Cellar/sqlite/3.32.1/lib \
CPPFLAGS=-I/home/linuxbrew/.linuxbrew/include" pyenv install 3.4.8

当我尝试为 3.25 或 3.24 安装旧公式并代入上述 LD_RUN_PATH/LDFLAGS 变量时,我总是以 3.31.1(Ubuntu 系统版本的 libsqlite3-dev ).我无法降级 libsqlite3-dev,因为它是一堆其他系统包的依赖项。我假设这是我对我试图传递给编译过程的标志的理解不足,但我不确定。

如果我完全删除 CPPFLAGS 变量,我可以让它完全不编译 _sqlite3,但是当我将它指向上面代码片段中的值,或者指向单独编译的 sqlite3 3.25/3.24 中的 /include 时,或我尝试过的任何其他组合,我仍然以 3.31.1 结束。

提前感谢您提供的任何信息,即使它只是指向有用的资源。

我终于通过以下方式解决了这个问题:

  1. 卸载 linuxbrew:/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall.sh)"
  2. 重新安装 linuxbrew:/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
  3. COMMIT=667d43f39f537f23ad6044b73e53482c44c2f93d
  4. brew install https://raw.githubusercontent.com/Homebrew/linuxbrew-core/$COMMIT/Formula/sqlite.rb
  5. pyenv uninstall 3.4.8
  6. export LD_RUN_PATH=/home/linuxbrew/.linuxbrew/Cellar/sqlite/3.25.3/lib
  7. export LDFLAGS=-L/home/linuxbrew/.linuxbrew/Cellar/sqlite/3.25.3/lib
  8. export CFLAGS=-L/home/linuxbrew/.linuxbrew/Cellar/sqlite/3.25.3/lib
  9. export CPPFLAGS=-I/home/linuxbrew/.linuxbrew/include
  10. pyenv install 3.4.8