Django не может найти новую версию sqlite?(Требуется SQLite 3.8.3 или более поздняя версия (найдено 3.7.17)) - PullRequest
4 голосов
/ 14 апреля 2019

Я клонировал проект 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 и буду признателен за любую помощь.

Ответы [ 4 ]

8 голосов
/ 24 мая 2019

Я получил ту же ошибку в CentOS 7.6 и Python 3.7.3 версии.Я думаю, что вы используете Django 2.2. * некоторую версию.В последней версии Django 2.2 они изменили версию SQLIte , которая и стала причиной вашей проблемы.

Это примечания к выпуску из Django 2.2 о SQLite .

Минимальная поддерживаемая версия SQLite увеличена с 3.7.15 до 3.8.3.

Таким образом, вы можете установить последнюю версию Django 2.1 с помощью этой команды.

pip install Django==2.1.*

Я думаю, что проблема решена.

1 голос
/ 20 апреля 2019

Чтобы проверить, какая версия 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

Надеюсь, это поможет.

0 голосов
/ 22 июля 2019

Я решил похожую ситуацию с помощью следующих патчей кода. Выполните эти шаги, которые я использовал на моем собственном 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
0 голосов
/ 12 июня 2019

У меня была такая же проблема, и я некоторое время боролся с ней.Для меня лучшим решением было закомментировать раздел DATABASES в файле settings.py.

Поскольку я не хочу использовать базу данных SQLite, то проблема больше не существует.Позже вы можете обновить информацию Базы данных с помощью действительной для вас базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...