Django找不到新的sqlite版本?(需要SQLite 3.8.3或更高版本(找到3.7.17))

2024-05-29 03:23:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经将一个django项目克隆到Centos 7 vps,现在我正试图运行它,但是当我试图migrate时出现了这个错误:

$ python manage.py migrate
django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.7.17).

当我检查sqlite的版本时,它是3.7.17,所以我从sqlite网站下载了最新的版本并替换为旧版本,现在当我对它进行版本设置时,它给出了:

$ sqlite3 --version
3.27.2 2019-02-25 16:06:06 bd49a8271d650fa89e446b42e513b595a717b9212c91dd384aab871fc1d0f6d7

不过,当我尝试迁移项目时,得到的消息与之前完全相同,这意味着找不到新版本。我是linux新手,希望能得到帮助。


Tags: 项目djangopycore版本sqlitemanagevps
3条回答

我用下面的代码补丁解决了类似的情况。按照我在自己的centos7上使用的这些步骤,一切都应该正常。 请记住让您的centos7知道您正在调用python3,而不仅仅是python,否则它将调用默认python2,然后在您的virtualenv中出现一系列错误。

安装python3(从源代码):

cd ~
wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tar.xz
tar xJf Python-3.7.3.tar.xz
cd Python-3.7.3
./configure
make && make install
export PATH=$HOME/opt/python-3.7.3/bin:$PATH

然后运行:source .bash_profile

确认人

python3 --version
Python 3.7.3 

正在安装sqlite3(从源代码):

$ cd ~
$ wget https://www.sqlite.org/2019/sqlite-autoconf-3290000.tar.gz
$ tar zxvf sqlite-autoconf-3290000.tar.gz
cd sqlite-autoconf-3290000

$./configure --prefix=$HOME/opt/sqlite
$ make && make install

现在这也是你应该记住的,因为centos7知道在哪里可以找到你的python3,而不是默认的python2。在您的.bash_profile上,复制并通过这段代码或相应地编辑路径:

export PATH=$HOME/opt/sqlite/bin:$PATH
export LD_LIBRARY_PATH=$HOME/opt/sqlite/lib
export LD_RUN_PATH=$HOME/opt/sqlite/lib

通过运行:source .bash_profile使其永久 你已经完成了sqlite3 version >= 3.8。确认人:

sqlite3 --version 
3.29.0 2019-07-10 17:32:03

然后可以继续使用python3安装python3模块,如django-2.2。

python3.7 -m pip3 install virtualenv

(myvenv37)[me@test my_project]$ python3.7 -m pip3 install django
Successfully installed django-2.2.3 pytz-2019.1 sqlparse-0.3.0

记住,是的

PYTHON3.7 -m pip3 install MODULE

(myvenv37)[me@test my_project]$ python3.7 manage.py runserver 

服务器应该在运行。

因此,总结一下,在上面的例子中是migrate,应该是这样的:

(venv)[me@test my_project]$ python3.7 manage.py migrate

我在CentOS 7.6Python 3.7.3版本中也遇到了同样的错误。我想你用的是Django 2.2.*某个版本。在最新的Django 2.2版本中,他们更改了SQLIte版本,这是导致问题的原因。

这是关于SQLiteDjango 2.2release notes

The minimum supported version of SQLite is increased from 3.7.15 to 3.8.3.

因此,可以使用此命令安装最新版本的Django 2.1

pip install Django==2.1.*

我想问题已经解决了。

要检查哪个版本的SQLite Python正在使用:

$ python
Python 3.7.3 (default, Apr 12 2019, 16:23:13) 
>>> import sqlite3
>>> sqlite3.sqlite_version
'3.27.2'

对我来说,sqlite3的新版本在/usr/local/bin中,所以我不得不重新编译Python,让它看看:

sudo LD_RUN_PATH=/usr/local/lib ./configure --enable-optimizations
sudo LD_RUN_PATH=/usr/local/lib make altinstall

我希望这会有帮助。

相关问题 更多 >

    热门问题