Как обновить sqlite 3.8.2 до> = 3.8.3 - PullRequest
5 голосов
/ 04 апреля 2019

В виртуальном Env с Python 3.7.2 я пытаюсь запустить django's python manage.py startap myapp и получаю эту ошибку:

raise ImproperlyConfigured('SQLite 3.8.3 or later is required (found %s).' % Database.sqlite_version)
django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.8.2).

Я использую Ubuntu Trusty 14.04 Server.

Как обновить или обновить версию sqlite до> = 3.8.3?

Я запустил

$ apt list --installed | grep sqlite

libaprutil1-dbd-sqlite3/trusty,now 1.5.3-1 amd64 [installed,automatic]
libdbd-sqlite3/trusty,now 0.9.0-2ubuntu2 amd64 [installed]
libsqlite3-0/trusty-updates,trusty-security,now 3.8.2-1ubuntu2.2 amd64 [installed]
libsqlite3-dev/trusty-updates,trusty-security,now 3.8.2-1ubuntu2.2 amd64 [installed]
python-pysqlite2/trusty,now 2.6.3-3 amd64 [installed]
python-pysqlite2-dbg/trusty,now 2.6.3-3 amd64 [installed]
sqlite3/trusty-updates,trusty-security,now 3.8.2-1ubuntu2.2 amd64 [installed]

и

sudo apt install --only-upgrade libsqlite3-0

Reading package lists... Done
Building dependency tree      
Reading state information... Done
libsqlite3-0 is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 14 not upgraded.

РЕДАКТИРОВАТЬ: settings.py является стандартным:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

Ответы [ 3 ]

5 голосов
/ 12 апреля 2019

Я только что прошел через это.Мне пришлось установить отдельную более новую версию SQLite, из

https://www.sqlite.org/download.html

, которая находится в / usr / local / bin.Затем мне пришлось перекомпилировать Python, попросив его посмотреть:

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

Чтобы проверить, какая версия SQLite Python использует:

$ python
Python 3.7.3 (default, Apr 12 2019, 16:23:13) 
>>> import sqlite3
>>> sqlite3.sqlite_version
'3.27.2'
3 голосов
/ 31 мая 2019

В дополнение к вышеупомянутым ответам, на случай, если вы столкнетесь с таким поведением на Travis CI, добавьте директиву dist: xenial, чтобы исправить это.

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

Я применил следующее исправление, и оно работало на моем сервере CentOS 7.x.

Редактировать /usr/lib64/python3.6/site-packages/django/db/backends/sqlite3/base.py файл согласно приведенному ниже примеру:

def check_sqlite_version():
# if Database.sqlite_version_info < (3, 8, 3):
# 2018-07-07, edit
if Database.sqlite_version_info < (3, 6, 3):
    raise ImproperlyConfigured('SQLite 3.8.3 or later is required (found %s).' % Database.sqlite_version)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...