找不到sqlite版本3.9或更高的djano安装

bd1hkmkf  于 2023-04-21  发布在  SQLite
关注(0)|答案(1)|浏览(156)

我试着在我的AWS linux AMI机器上安装Django。马上,我得到了错误,当前版本的Django需要sqlite版本3.9或更高版本。所以我开始尝试安装一个符合要求的sqlite版本,但没有运气。所以,为了解决这个问题,我将Django版本降级到2.15,它与sqlite版本兼容,一切工作正常。
然后我想添加bootstrap到项目中,所以我使用以下命令安装:pip install django-bootstrap3
该软件包需要更高版本的Django,所以它卸载了2.15并安装了Django 3.2.18。当我尝试运行服务器时,我得到了与Django版本和sqlite不兼容的消息。(顺便说一下,bootstrap的确切版本是3-23.1)
我可以通过pip安装sqlite:pip install db-sqlite3但是这给了我一些比3.9更早的东西,这是需要的。
所以,我可以找到一个与Django 2.15兼容的早期版本的bootstrap,或者找到一个更高版本的sqlite。显然,最好的解决方案是获得一个更新版本的sqlite。
有什么建议吗?
谢谢

z31licg0

z31licg01#

这是我的脚本,我建议手动运行命令,以防其中一个pre-reqs出现问题。我已经在Centos7,Centos 8 s和Rocky 9中运行过它,所以它应该能在您的特定系统上工作..并且您的系统应该安装了dnf,这是yum的更新重写

提前了解几件事:

如果你的系统已经有了python3版本,它必须是一个alt install make altinstall,否则它可能会破坏一切。Centos 8 s + Rocky 9带有一个Python3,所以下面的命令是一个altinstall
您正在寻找的主要内容是:在Python的make命令之后,查找卸载的模块。我发现如果你有很多这样的东西,就会开始崩溃。这是我运行下面的脚本后的输出:

Python build finished successfully!
The necessary bits to build these optional modules were not found:
_tkinter
To find the necessary bits, look in setup.py in detect_modules() for the module's name.

如果重新运行make进程以修复任何丢失的模块,请在运行./configure之前运行make distclean
您也可以尝试更新它以获取python 3.11,但不能保证它会工作。

install_python.sh

# Login as root
sudo su

# general
yum -y update
yum install -y curl gcc make

# Pre-Reqs {{{

yum install -y libffi-devel bzip2-devel readline-devel gdbm-devel libuuid-devel libpq-devel openssl-devel

# enable powertools for libnsl2-devel -> python nis module
yum config-manager --set-enabled powertools
yum install -y libnsl2-devel

yum groupinstall -y 'Development Tools'

# sqlite install {{{

cd /tmp
curl -LO https://www.sqlite.org/2023/sqlite-autoconf-3410000.tar.gz
tar zxvf sqlite-autoconf-*.tar.gz
rm -rf sqlite-autoconf-*.tar.gz
cd sqlite*/
mkdir build
cd build
../configure
make
make install

# }}}

# libffi {{{

cd /tmp/
curl -LO https://github.com/libffi/libffi/releases/download/v3.4.4/libffi-3.4.4.tar.gz
tar xzvf libffi-*.tar.gz
rm -rf libffi-*.tar.gz
cd libffi-*
mkdir build
cd build
../configure --disable-docs
make
make install

# }}}

# }}}

# Install {{{

cd /tmp
curl -LO https://www.python.org/ftp/python/3.10.5/Python-3.10.5.tgz
tar xvf Python-*.tgz
rm -rf Python-*.tgz
cd Python-*/
mkdir build
cd build

# only required if already ran make
# make distclean

export LD_LIBRARY_PATH=$LD_LIBARY_PATH:/usr/local/lib64:/usr/local/lib
export LDFLAGS="-L/usr/local/lib -L/usr/local/lib64 -Wl,-rpath,/usr/local/lib -Wl,-rpath,/usr/local/lib64"
export LD_RUN_PATH=/usr/lib

../configure --enable-loadable-sqlite-extensions
make
make altinstall

# Use: `make install` if system doesn't already has a system python3

# alt install,
# Link to Bin so root can use it
ln -s /usr/local/bin/python3.10 /usr/bin
ln -s /usr/local/bin/pip3.10 /usr/bin

# }}}

# vim:fen:fdm=marker:fmr={{{,}}}:fdl=0:fdc=1:ts=2:sw=2:sts=2

[vagrant@centos8 ~]$ sqlite3 --version
3.41.0 2023-02-21 18:09:37 05941c2a04037fc3ed2ffae11f5d2260706f89431f463518740f72ada350866d
[vagrant@centos8 ~]$ python3.10
Python 3.10.5 (main, Apr 14 2023, 19:18:44) [GCC 8.5.0 20210514 (Red Hat 8.5.0-18)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite3
>>> sqlite3.sqlite_version
'3.41.0'

应该设置一段时间

相关问题