[Python] CentOS7にインストール (Django SQLite)

CentS7にPython3とDjangoをインストールしてみます。SQLiteのバージョンをアップする必要があったりと、かなり試行錯誤しながらのインストールになりました。バージョンによってはエラーが出たりするので、エラーメッセージを見ながらひとつずつ対処しました。

[環境]
CentOS 7.7
Python 3.6.8

CentOSのバージョン確認

Pythonのバージョン確認

下準備

Pythonに必要な外部モジュールのインストールです。これはPythonのインストール前に行っておく必要があります。

パッケージがあとから足りなくなった場合は、パッケージをインストールした後にもう一度Pythonをインストールし直してビルドします。

SQLite更新の必要性

ページ下の方にも記載しておきますが、SQliteのバージョンが古いとエラーになるので、事前にバージョンアップしておきます。
SQLiteのバージョンアップは下記のページが参考になります。
Django2.2で開発サーバー起動時にSQLite3のエラーが出た場合の対応
共通のライブラリにパスを渡すを忘れずに。
「vi ~/.bashrc」で「export LD_LIBRARY_PATH=”/usr/local/lib”」を追加。
これだけではすぐに実行されないので、下記コマンドで実行する
「source ~/.bashrc」
再起動時にも実行されるように
「vi ~/.bash_profile」でファイルを開き、「source ~/.bashrc」を追加する。

その他
「/etc/ld.so.conf」に「export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH」を追加。

yumでPythonのインストール

Pythonのバージョン確認

Pythonの3.6をインストールしたはずが、バージョンは2.7.5のままです。
デフォルトで使用するPythonのバージョンを切り替えます。

リンクを確認してみます。

バージョン2のままです。これを変更します。

バージョン3にリンクを変更

変更されたかを確認。

Pythonの起動

Python3で起動するかを確認してみます。コンソールにpythonを入力し実行します。

Python 3.6.8でうまく起動しています。

yumを利用できるように

「#!/usr/bin/python」を「#!/usr/bin/python2」に変更

「#!/usr/bin/python」を「#!/usr/bin/python2 」に変更

pipのインストール

Djangoのインストール

Djangoのバージョン確認

Djangoのプロジェクト作成

アプリケーションを作成したいディレクトリで以下を実行

Djangoのアプリケーション作成

ここでエラーメッセージがでてきます。(長文)

これはSQLiteのバージョンアップして下さいというメッセージになります。
SQLiteのバージョンアップは下記のページが参考になります。
Django2.2で開発サーバー起動時にSQLite3のエラーが出た場合の対応
(上記のパスでうまく行かないとき)
「/etc/ld.so.conf」に「export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH」

マイグレーションの実行

「python3.6 manage.py runserver xxx:xxx:xxx:xxx:8000」で起動してみます。python3.6の部分は自分のpythonのバージョンに合わせて変更。ポートは80にすると既に使われているとエラーが出ました。サーバーで事前にポート8000を開放しておきます。

起動してみると途中に赤い文字でエラーが出ており、ウェブに接続するとページが表示されません。

「Run ‘python manage.py migrate’ to apply them.」と記載してあるので、マイグレーションを実行してみます。

これでマイグレーション実行が完了しました。
ここでもう一度 runserverを実行してみます。

サーバーの起動

今度はエラーメッセージが無く、無事起動したようなメッセージになっています。
ブラウザで「http://xxx.xxx.xxx.xxx:8000/」にアクセスしてみます。

2020-03-20_01h10_34
このように「The install worked successfully! Congratulations!」とDjangoのロゴが表示されたら起動成功です。



Author: webmaster