web-dev-qa-db-ja.com

SQLite 3.8.2を> = 3.8.3にアップグレードする方法

Python 3.7.2の仮想環境で、Djangoの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'),
    }
}
8
Chubeez

私はこれを経験しました。別の新しいバージョンの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'
8
Mark Bailey

次の修正を適用しましたが、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)
4
jaeyoung jeong

上記の回答に加えて、Travis CIでこの動作が発生した場合に備えて、dist: xenialディレクティブを追加して修正します。

4

このエラーは、仮想環境が新しく更新されたsqlite3データベースに接続できなかったために発生します。そのためには、sqlite3データベースのバージョンを手動で更新してから、仮想環境へのパスを指定する必要があります。以下の手順に従ってください。

  1. 公式サイトから最新のsqlite3をダウンロードしてください。 ( https://www.sqlite.org/download.htmlwget http://www.sqlite.org/sqlite-autoconf-3070603.tar.gz

  2. 次に、そのフォルダーに移動してコマンドを実行します。 tar xvfz sqlite-autoconf-3070603.tar.gz

  3. それぞれのフォルダに移動します。 cd sqlite-autoconf-3070603

  4. ./configure

  5. make

  6. make install時間がかかりすぎる可能性がありますが、終了するまでお待ちください。時間がかかりすぎる場合は、そのプロセスを終了して、残りのステップを続けてください。

  7. これで、更新されたsqlite3が正常にインストールされました。このコマンドを実行してくださいSudo LD_RUN_PATH=/usr/local/lib ./configure --enable-optimizations

  8. 仮想環境のアクティブ化ファイル(例:venv/bin/activate)を開き、この行の先頭をファイルの先頭に追加します... export LD_LIBRARY_PATH="/usr/local/lib"

  9. チェックのために、このコマンドをpython Shellに入力できます

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

Python=を再コンパイルする必要がなく、virtualenvを使用する場合は、これを実行して、システム全体に影響を与えることなくセットアップできます(私はこれを行いました) Ubuntu 16の場合):

  1. https://www.sqlite.org/download.html からSQLite tarballをダウンロードします
  2. 内容を抽出し、CDをフォルダーに入れます。
  3. 次のコマンドを実行します。

    。/構成、設定

    Sudo make install

  4. ここで、virtualenvの起動に使用するアクティベートスクリプトを編集して、pythonが新しくインストールされたSQLiteの正しい場所を探すようにします。ファイルの先頭に次の行を追加するだけです。

    lD_LIBRARY_PATH = "/ usr/local/lib"をエクスポートします

これで、アクティブなときDjango 2.2+はvirtualenvで正常に動作するはずです。お役に立てれば幸いです。

3
PyUnchained