投稿日: | 最終更新日:
【Django3.x】久々に開発サーバー起動時にSQLite3のエラーが出た【SQLite3】
Djangoの簡易サーバーを起動したところ、Sqlite3のエラーが表示されたので対処します。
開発サーバー起動時エラーが発生
前回、ソースコードの配置まで完了しました。久々に「python3 manage.py runserver」で起動できるかどうか試してみたところ、以下のエラーようなエラーが発生しました。
【Vagrant】DRFアプリケーション作成、テスト起動【Django】
File "/usr/local/lib64/python3.7/site-packages/django/db/backends/sqlite3/base.py", line 69, in check_sqlite_version 'SQLite 3.9.0 or later is required (found %s).' % Database.sqlite_version django.core.exceptions.ImproperlyConfigured: SQLite 3.9.0 or later is required (found 3.7.17).
上記のエラーは省略していますが、実際はずらずら表示されます。スタックトレース(Stack Trace) というもので、プログラムの呼び出し順序が記録されてものです。pythonではこの表示に「traceback」という標準ライブラリが使用されるため、最初のほうに「Traceback (most recent call last):」と表示されています。必要なのは「最終的にどこでエラーが発生したか」「どういう内容か」だけなので一番下のこの2行以外見る必要ありません。
翻訳すると、「SQLite3.9.0以降が必要です。」という内容です。新しいバージョンのSQLlite3をインストールします。
作業の流れ
1.vagrantを起動して、Amazon Linux2にログインします。
2.Pythonパッケージをインストールします。
前回まで
今回の作業は、以下の続きです。
→【仮想環境】MacにVirtualBoxをインストール【Mac】
→【Vagrant】MacにAWS公式のAmazon Linux2 Vagrant 環境を作成【オンプレミス】
→【Vagrant】MacにAWS公式のAmazon Linux2 Vagrant Boxを作成、起動【オンプレミス】
→Vagrant】Macに用意したVagrantのAmazon Linux2 環境にVirtualBox Guest Additionsをインストール【オンプレミス】
→【Vagrant】Macに用意したAmazon Linux2 環境にPythonをインストール【オンプレミス】
→【Vagrant】Macに用意したAmazon Linux2 環境にuwsgi、Django、Django Restframeworkをインストール【オンプレミス】
→【Vagrant】Macに用意したAmazon Linux2 環境にsqlite3、nginxをインストール【オンプレミス】
※今回の記事は、既にAmazonLinux2のVagrant環境を作成済みであるとします。
環境
私のPC環境は以下の通りです。
PC | MacBook Air (Retina, 13-inch, 2019) |
---|---|
CPU | 1.6 GHz デュアルコアIntel Core i5 |
メモリ | 16 GB 2133 MHz LPDDR3 |
OS | 10.15.2 |
VirtualBox | 6.1.12r139181 |
Vagrant | 2.2.9 |
仮想環境
仮想環境は以下の通りです。
OS | Amazon Linux release 2 (Karoo) |
---|---|
Python | 3.7.9 |
Django | 3.2 |
djangorestframework | 3.12.4 |
djangorestframework-jwt | 1.11.0 |
django-cleanup | 5.2.0 |
uWSGI | 2.0.19.1 |
Nginx | 1.18.0 |
対処法
①まず、最新バージョンを「https://www.sqlite.org/download.html」で確認します。
②以下のコマンドを実行します。
wget https://www.sqlite.org/2020/sqlite-autoconf-3360000.tar.gz
# 新しいバージョンのファイル名を指定してください
# 例) SQLite 3.36.0の場合
ダウンロードが開始されます。
--2021-09-23 17:05:54-- https://www.sqlite.org/2021/sqlite-autoconf-3360000.tar.gz www.sqlite.org (www.sqlite.org) をDNSに問いあわせています... 45.33.6.223, 2600:3c00::f03c:91ff:fe96:b959 www.sqlite.org (www.sqlite.org)|45.33.6.223|:443 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 2977080 (2.8M) [application/x-gzip] `sqlite-autoconf-3360000.tar.gz' に保存中 100%[=======================================================================>] 2,977,080 1.58MB/s 時間 1.8s 2021-09-23 17:05:58 (1.58 MB/s) - `sqlite-autoconf-3360000.tar.gz' へ保存完了 [2977080/2977080]
③ダウンロードしたファイルを解凍します。
tar xvfz sqlite-autoconf-3360000.tar.gz
解凍したディレクトリへ移動します。
cd sqlite-autoconf-3360000
④ビルドしてインストールします。
./configure --prefix=/usr/local make sudo make install
⑤ビルドの結果を確認します。
sudo find /usr/ -name sqlite3
以下のような実行結果が出ます。
/usr/bin/sqlite3 /usr/lib64/python2.7/sqlite3 /usr/lib64/python3.7/sqlite3 /usr/local/bin/sqlite3 /usr/local/lib64/python3.7/site-packages/django/db/backends/sqlite3
⑥不要なファイル、ディレクトリを削除します。
cd ../ rm -rf ./sqlite-autoconf-3360000
⑦インストール後のバーションを確認します。
sqlite3 --version 3.36.0 2021-06-18 18:36:39 5c9a6c06871cb9fe42814af9c039eb6da5427a6ec28f187af7ebfb62eafa66e5
⑧sqlite3をバックアップし、シンボリックリンクを作成します。
sudo mv /usr/bin/sqlite3 /usr/bin/sqlite3_old sudo ln -s /usr/local/bin/sqlite3 /usr/bin/sqlite3
⑨共有ライブラリへパスを通します。
vi ~/.bashrc
以下のような内容を記述します。
export LD_LIBRARY_PATH="/usr/local/lib"
設定を追加しないと、ターミナルを起動するたびに実行することになります。
SQLite3のバージョン確認
①Python3を起動します。
python3
②以下の記述でバージョンを確認します。
>>> import sqlite3 >>> sqlite3.sqlite_version
結果:
'3.36.0'
③Python3を終了します。
>>> exit()
これでDjango簡易サーバーの起動ができると思います。
python3 manage.py runserver 0.0.0.0:8080
次回
DRFによるアップロダを作成します。
- Python 113
- 制作 54
- RaspberryPi 41
- Django 40
- WordPress 40
- Linux 27
- VPS 22
- JavaScript 21
- PHP 20
- HTML・CSS 19
- AWS 16
- 仮想環境 15
- レスポンシブデザイン 13
- マイコン 11
- WEB全般 11
- 動画製作 9
- Webサービス 8
- 統合開発環境 8
- PyCharm 7
- jQuery 7
- 機械学習 7
- AfterEffects 7
- 起業・設立 7
- Django REST framework 6
- C# 6
- デザイン 6
- SEO 6
- pydata 6
- Visual Studio 5
- 数学 5
- 携帯サイト 5
- heroku 5
- Mac 5
- illustrator 5
- node.js 5
- Anaconda 5
- Nginx 4
- Jupyter Notebook 4
- インフラ 4
- symfony 4
- Webスクレイピング 3
- photoshop 3
- Go言語 3
- PC 3
- Google Colaboratory 3
- ツール 3
- Docker 3
- facebook 3
- 作業効率化 3
- データベース 3
- Cloud9 3
- コマンド 2
- micro:bit 2
- Kali Linux 2
- Webサーバー 2
- MariaDB 2
- ドローン 2
- コンテナ 2
- DaVinci Resolve 2
- ネットワーク 2
- Java 2
- movie 2
- PCDJ 2
- 音楽 2
- XSERVER 2
- Ansible 1
- Vue.js 1
- JSON 1
- Bootstrap 1
- バージョン管理システム 1
- SSL 1
- S3 1
- ムームードメイン 1
- ネットワーク 1
- アニメーション 1
- D3.js 1
- Rhino 1
- アニメ 1
- git 1
- windows 1
- アクセス解析 1
- スマートフォン 1
- アフィリエイトノウハウ 1
- 知識 1
- TypeScript 1
- 役立つ本・書籍 1
- データサイエンス 1
- ESP32 1
- AI 1
- ownCloud 1
- API 1