无法通过 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
设置:
- Ubuntu 20.04
- Pyenv
- libsqlite3-dev v3.31.1
我正在尝试将 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 结束。
提前感谢您提供的任何信息,即使它只是指向有用的资源。
我终于通过以下方式解决了这个问题:
- 卸载 linuxbrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall.sh)"
- 重新安装 linuxbrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
COMMIT=667d43f39f537f23ad6044b73e53482c44c2f93d
brew install https://raw.githubusercontent.com/Homebrew/linuxbrew-core/$COMMIT/Formula/sqlite.rb
pyenv uninstall 3.4.8
export LD_RUN_PATH=/home/linuxbrew/.linuxbrew/Cellar/sqlite/3.25.3/lib
export LDFLAGS=-L/home/linuxbrew/.linuxbrew/Cellar/sqlite/3.25.3/lib
export CFLAGS=-L/home/linuxbrew/.linuxbrew/Cellar/sqlite/3.25.3/lib
export CPPFLAGS=-I/home/linuxbrew/.linuxbrew/include
pyenv install 3.4.8
设置:
- Ubuntu 20.04
- Pyenv
- libsqlite3-dev v3.31.1
我正在尝试将 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 结束。
提前感谢您提供的任何信息,即使它只是指向有用的资源。
我终于通过以下方式解决了这个问题:
- 卸载 linuxbrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall.sh)"
- 重新安装 linuxbrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
COMMIT=667d43f39f537f23ad6044b73e53482c44c2f93d
brew install https://raw.githubusercontent.com/Homebrew/linuxbrew-core/$COMMIT/Formula/sqlite.rb
pyenv uninstall 3.4.8
export LD_RUN_PATH=/home/linuxbrew/.linuxbrew/Cellar/sqlite/3.25.3/lib
export LDFLAGS=-L/home/linuxbrew/.linuxbrew/Cellar/sqlite/3.25.3/lib
export CFLAGS=-L/home/linuxbrew/.linuxbrew/Cellar/sqlite/3.25.3/lib
export CPPFLAGS=-I/home/linuxbrew/.linuxbrew/include
pyenv install 3.4.8