スクリプトのお勉強 技術

CentOS7 + Django2.2でSQlite3を使用する方法

投稿日:

そのままだとエラーになる

素のCentOS7で、SQLite3を使用して、Djangoアプリを起動すると以下のエラーになります。

File "/opt/webapps/django_upload/.venv/lib/python3.6/site-packages/django/db/backends/sqlite3/base.py", line 63, in check_sqlite_version
  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.7.17).

対処(1) SQLite3のソースからコンパイルする。

SQLite3のソースを持ってきてコンパイルし、/usr/local/libにインストールして、そのライブラリを見るようにする方法です。

ソースに関しては、snapshotを持ってきてしまいましたが、本来は以下のような感じがいいようです。

https://www.sqlite.org/2019/sqlite-amalgamation-3280000.zip

具体的な手順は以下です。

$ wget https://www.sqlite.org/snapshot/sqlite-snapshot-201906171413.tar.gz
$ tar xvfz sqlite-snapshot-201906171413.tar.gz
$ cd sqlite-snapshot-201906171413
### /usr/local以下にインストール
$ ./configure --prefix=/usr/local ; make
$ sudo make install
### sqlite ライブラリを参照するように追加
$ sudo echo "/usr/local/lib" >> /etc/ld.so.conf.d/sqlite.conf
$ sudo ldconfig
### 確認
$ /usr/local/bin/pipenv run python manage.py shell
Python 3.6.8 (default, Apr 25 2019, 21:02:35)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.6.1 -- An enhanced Interactive Python. Type '?' for help.

In [1]: import sqlite3

In [2]: sqlite3.sqlite_version
Out[2]: '3.29.0'

対処(2) 。。。

と書きたかったのですが、現状だと上記が一番簡単なようです。

おわりに

これようのRPMでも作ったほうがいいかな。。fpmだと一発で作れそうですが。

-スクリプトのお勉強, 技術

執筆者:

関連記事

顔画像のモザイク方法(python + OpenCV + face_recognition)

Python3での顔画像モザイク方法 python3での顔画像モザイクの方法を調べてみました。 仕事とは関係なく、単なる趣味だったりしますが。。 この内容で、Djangoと統合する予定です。 Open …

整形/文法チェック ツール インストールまとめ

1.はじめに 最近、仕事で複数スクリプトを組み合わせてコーディングすることが多くなりました。 それだと、各スクリプトの癖を忘れたり、そもそもどう書くのか忘れたりと、不良を作りこむ可能性が多くなります。 …

Mojolicious XML-RPC Pluginの開発(1)

はじめに 最近、お仕事関連で、perlとWebアプリケーションを触っています。 両方一度にお勉強、ということで、perlのWAF(Webアプリケーションフレームワーク)を調べてみようと思いました。 こ …

Markdown to HTML(grip)

1.はじめに 最近の文書はほとんどMarkdownで書くのですが、それをHTMLに変換する方法を調べました。 ただし、私がMarkdownと思っている文法は「github-flavored-markd …

Pythonのmock.patchを使ってみる

単体テストによく使われるMockライブラリ Pythonで単体テストを行う際、実際のライブラリを使用してしまうと、実際の環境を用意しなければいけません。 例えば、データベースのテストをする際に、データ …

google オプトアウト Click here to opt-out.