【CentOS8】Pythonで仮想環境「venv」を利用したDjango構築手順


「venv」はPython3.3からの標準機能として使われ、別途ソフトウェアをインストールすることなく簡単に仮想環境を構築・管理するツールとなります。

今回は、CentOS8環境でPythonをインストールし、venvを利用した「Django」の構築手順をまとめました。
Djangoを構築した環境は以下となります。

$ cat /etc/redhat-release
CentOS Linux release 8.1.1911 (Core)
$ python3 -V
Python 3.6.8

Python「venv」でDjango構築(CentOS8環境下)

まずは、venvプロジェクトを作成するために「venv」というプロジェクトフォルダを作成します。

$ mkdir venv
$
$ ll
total 8
drwxr-xr-x 2 root root 4096 Mar 22 11:33 venv

仮想環境作成

次に作成した「venv」フォルダは以下で「venv_app」という名前で仮想環境を作成します。

$ python3 -m venv venv_app

環境構築が成功すると「venv_app」フォルダが作成されます。


「venv」仮想環境にアクセスする

上記で、Pythonの仮想環境を作成したので実際に仮想環境にアクセスします。

$ cd venv_app/bin/

「venv_app」内の「bin」フォルダ内で「active」コマンドを実行します。
成功すると以下のようにプロンプトが(venv_app)と変更されます。

$ source activate
(venv_app) $ 

仮想環境から出る場合は「deactivate」コマンドを実行します。

(venv_app) $ deactivate
$

「venv」仮想環境で「Django」インストール

Pythonで仮想環境を構築した後は、仮想環境かで「Django」をインストール・起動します。

Djangoのインストールは「pip」コマンドを実行します。

(venv_app) $ pip install django

インストールが成功した場合は以下でバージョン確認をします。
今回はバージョン指定はしていないので最新バージョンがインストールされています。

(venv_app) $ python3 -m django --version
3.0.4

Djangoプロジェクト作成

次にDjangoのプロジェクトを作成します。
プロジェクト名は「private_diary」とします。

(venv_app) $ django-admin startproject private_diary

プロジェクト作成が成功すると以下のようにフォルダ内にファイルが作成されます。

(venv_app) $ tree private_diary/
private_diary/
|-- manage.py
|-- private_diary
    |-- asgi.py
    |-- __init__.py
    |-- settings.py
    |-- urls.py
    |__ wsgi.py

1 directory, 6 files
(venv_app) $

Djangoにアクセスする「settings.py」を編集

Django起動しても以下の設定をしないとアクセスができません。
「settings.py」で指定の行を編集します。

# vim djangotest/settings.py
「ALLOWED_HOSTS」の行で、[] → [“*”]へ変更します。

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

ALLOWED_HOSTS = ["*"]

編集は「i」コマンドで、保存して抜ける場合は「Esc」を押して「:wq」となります。

Djangoで使用するポート:8000を開放

次にDjangoで利用するポート番号「8000」を通信できるようにfirewallコマンドで開放します。

firewall-cmd --add-port=8000/tcp --zone=public --permanent

ポート「8000」番が解放されたことを以下で確認します。

# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources:
  services: cockpit dhcpv6-client http postgresql ssh
  ports: 8000/tcp 80/tcp 5432/tcp
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

Django起動

上記までの設定ができれば、最後にDjangoを起動します。
起動するアプリ名は「diary」とします。

(venv_app) $ cd private_diary/
(venv_app) $ python3 manage.py startapp diary

起動後は以下の世に「diary」ふぉるだが作成され、配下にファイルも作成されています。

(venv_app) $ tree private_diary/
private_diary/
|-- db.sqlite3
|-- diary
|   |-- admin.py
|   |-- apps.py
|   |-- __init__.py
|   |-- migrations
|   |   mqq __init__.py
|   |-- models.py
|   |-- tests.py
|   |__ views.py
|-- manage.py
|__ private_diary
    |-- asgi.py
    |-- __init__.py
    |-- __pycache__
    |   |-- __init__.cpython-36.pyc
    |   |-- settings.cpython-36.pyc
    |   |-- urls.cpython-36.pyc
    |   |__ wsgi.cpython-36.pyc
    |-- settings.py
    |-- urls.py
    |__ wsgi.py

4 directories, 18 files
(venv_app) $

上記が確認できた後は、「runserver」コマンドでDjangoを起動します。

(venv_app) $ python3 manage.py runserver 0.0.0.0:8000

対象のアドレスにアクセスし、問題なくDjangoのページが表示されれば完成です。

CentOS8においてのPython(venv)仮想環境におけるDjangoの構築手順は以上となります。


関連記事


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

ABOUTこの記事をかいた人

blank

インターネット関連のSEをやっています。 ネットワーク、サーバー、ストレージ、仮想基盤まで幅広く手を出しており、MVNOの構築経験もあります。 現在は、Pythonを使ったプログラミングの開発をしネットワークの自動化ツールを作成しています! Pythonの入門書も作成しているので、ぜひ参考にしてください!