ホーム > カテゴリ > Python・人工知能・Django >

Django開発環境の構築とインストール [WSL/Ubuntu環境]

Django開発環境では複数のPythonバージョンを管理する「pyenv」(パイエンブ)、仮想環境の管理をする「venv」(ブイエンブ)を使用します。

目次

1. 環境
2. 用語解説
3. ビルドツール・ライブラリのインストール
4. pyenv(複数のPythonバージョン管理)のインストール
5. pip(パッケージ管理)とvenv(仮想環境)のインストール
6. 仮想環境の作成(/home/ユーザー名/django/3.0.4/.venv)
7. 仮想環境にDjangoフレームワークをインストール
8. Djangoプロジェクトの作成と開発サーバーを実行する

1. 環境

WSL2(Windows Subsystem for Linux)のUbuntu18.04

※その他のバージョン、CentOSなどでも同様な操作で可能です。

2. 用語解説

Pythonプログラミング言語
pyenv複数のPythonバージョンを管理する

pipPythonに追加するPythonパッケージを管理する
※DjangoはPythonパッケージとしてインストール
venv仮想環境の管理をする
※pipによる追加パッケージをvenv毎に独立できる
※.venvは仮想環境(venv)の任意の名称です。

2-1. venvの解説

前提として「1つの仮想環境には1つのDjango」しかインストールできません。強引にインストールすると後からインストールしたバージョンに上書きされます。複数必要な場合は複数の仮想環境を作成します。

venvの仮想環境はわかりやすく言えば、Djangoのバージョン毎にプロジェクトを生成できます。もちろん、使用するPythonやPythonパッケージが異なればプロジェクト毎でも構いません。※業務では後者のケースですね。

// Djangoバージョン毎にプロジェクトを生成する例
/mnt/d/django/3.0.4/.venv
/mnt/d/django/3.0.4/project1
/mnt/d/django/3.0.4/project2

/mnt/d/django/3.2.0/.venv
/mnt/d/django/3.2.0/project1
/mnt/d/django/3.2.0/project2

「.venv」の名称はGitHubの既定のPython用gitignoreテンプレートで定義されていますが任意です。「.venv_django_バージョン」や「.venv_プロジェクト名」などでも良いです。

[.venvのファイル構成]

.venv/lib64は.venv/libのシンボリックリンクですのでWindowsのエクスプローラーで操作すると以下のようにアクセスできません。

バックアップなどをとる時にアクセスできないのは厄介ですし、そもそも、C:¥やD:¥にファイルを展開するとWSLでは結構時間がかかります。

2-2. venvとソースコードの扱い

上記の件で、この記事では仮想環境のvenvはUbuntuのホームディレクトリ。プロジェクトのソースコードはDドライブに配置するようにします。

// 仮想環境の配置場所
/home/ユーザー名/django/3.0.4/.venv
/home/ユーザー名/django/3.2.0/.venv

// プロジェクトのソースコードの配置場所
/mnd/d/django/project1
/mnd/d/django/project2
/mnd/d/django/project3

WSLにあるファイルをWindowsのエクスプローラーで表示する場合は次のようにします。explorer.exeにカレントディレクトリを投げています。

cd /home/ユーザー名/django/3.0.4
explorer.exe .

Djangoのバージョンが3.0.4になっているのは人気参考書の「Python Django3超入門」(掌田 津耶乃)が3.0.4を使用している為です。別バージョンでも構いません。

前置きが長くなりましたが、次からがインストール作業です。

3. ビルドツール・ライブラリのインストール

// このコマンドは一行です
sudo apt install build-essential libbz2-dev libdb-dev \
  libreadline-dev libffi-dev libgdbm-dev liblzma-dev \
  libncursesw5-dev libsqlite3-dev libssl-dev \
  zlib1g-dev uuid-deva tk-dev

公式(Ubuntu)
https://www.python.jp/install/ubuntu/index.html

公式(CcentOS)
https://www.python.jp/install/centos/index.html

4. pyenv(複数のPythonバージョン管理)のインストール

pyenvはrbenvとruby-buildからフォークしてPython用に作り直したバージョン管理ツールです。OSによって動作が異なるようです。

Ubuntuでのバージョン設定はそのユーザーにのみ有効です。rootなど他のユーザーは以前のバージョンのままとなります。

CentOSはrootなど他のユーザーも同じバージョンになるようです。回避策として「pyenv local」を使えば特定のディレクトリ配下のみに設定可能です。

// pyenvのインストールと設定
cd ~
git clone https://github.com/yyuu/pyenv.git ~/.pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
source ~/.bashrc

// pyenvの起動確認
pyenv

// Pythonのバージョンを3.8.8にする
// ※バージョンの詳細は公式で確認可能です。
// ※https://www.python.org/downloads/
pyenv install 3.8.8

// (Ubuntuの推奨)このバージョンを全ディレクトリに適用
pyenv global 3.8.8
↑どちらか↓
// (CentOSの推奨)このバージョンをディレクトリ配下のみ適用
pyenv local 3.8.8

// (注意) 本番環境では次のように共有設定をONにする。
env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.8.8

// Pythonの一覧
pyenv versions
// 現在のPythonバージョン(ユーザー側)
python -V

Python3.6系サポート期限は2021年12月迄。3.8系サポート期限は2024年10月迄。現時点では3.9が最新版(2020年10月~)なので3.9は却下。

公式(pyenv)
https://github.com/pyenv/pyenv

公式(Python)
https://www.python.org/downloads/

5. pip(パッケージ管理)とvenv(仮想環境)のインストール

// パッケージ管理(pip3)のインストール
sudo apt install python3-pip

// pip3のバージョンの表示
pip3 -V

// pipを最新版にアップグレード
pip3 install --upgrade pip

// pip3のバージョンの表示
pip3 -V

// 仮想環境(venv)のツールをインストール
sudo apt install python3-venv

6. 仮想環境の作成
(/home/ユーザー名/django/3.0.4/.venv)

/home/ユーザー名/django/3.0.4/.venvに仮想環境を作成します。

仮想環境を操作するには「アクティブ」(source .venv/bin/activate)、「非アクティブ」(deactivate)のコマンドを使用する必要があります。

※(.venv)の部分が仮想環境となります。

// /home/ユーザー名/django/3.0.4のディレクトリを生成
cd ~
mkdir django
cd django
mkdir 3.0.4
cd 3.0.4

// .venvという名前の仮想環境を作成する
python3 -m venv .venv
// その中身を確認
ls .venv -l

// 仮想環境(.venv)をアクティブにする
// ※仮想環境で使うコマンドはpython3はpythonでpip3はpipとなります。
source .venv/bin/activate
  
  // Pythonバージョンの確認
  python -V  

// 仮想環境を非アクティブにする
deactivate 

7. 仮想環境にDjangoフレームワークをインストール

// カレントの移動
cd /home/ユーザー名/django/3.0.4

// 仮想環境(.venv)をアクティブにする
source .venv/bin/activate
  
  // Djangoフレームワーク(3.0.4)のインストール    
  python -m pip install Django==3.0.4

  // Djangoフレームワークのバージョンを確認する
  python -m django --version
  
  // 仮想環境にあるパッケージの確認
  pip freeze
  
// 仮想環境を非アクティブにする
deactivate  

各バージョンの最新版をインストールするには「*」を使います。

3.0系の最新版python -m pip install Django==3.0.*
3.1系の最新版python -m pip install Django==3.1.*
3.2系の最新版python -m pip install Django==3.2.*
4.0系の最新版python -m pip install Django==4.0.*
4.1系の最新版python -m pip install Django==4.1.*
4.2系の最新版python -m pip install Django==4.2.*
5.0系の最新版python -m pip install Django==5.0.*

2021年2月23日の時点では3.2b1(3.2のベータ版)が最新の開発版です。

// 最新の開発版をインストールする場合
pip install --pre django

バージョンを直接指定する際は次の公式サイトをご確認ください。

https://docs.djangoproject.com/en/3.2/releases

8. Djangoプロジェクトの作成と開発サーバーを実行する

仮想環境を用いて/mnt/d/django/project1にプロジェクトを作成します。

// カレントの移動
cd /home/ユーザー名/django/3.0.4

// 仮想環境(.venv)をアクティブにする
source .venv/bin/activate
    
  // プロジェクトの作成 ※/mnt/d/django/project1
  cd /mnt/d
  mkdir django
  cd django
  django-admin startproject project1

  // 開発サーバーを実行する
  cd project1
  python manage.py runserver

  // 開発サーバーを停止する 
  ctrl + c 
  
// 仮想環境を非アクティブにする
deactivate  

ブラウザで開く
http://localhost:8000

赤文字でメッセージが表示されますが、現時点では放置でOKです。

You have 17 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions. Run 'python manage.py migrate' to apply them. 

( 17の未適用の移行があります。 管理者、認証、コンテンツタイプ、セッションなどのアプリに移行を適用するまで、プロジェクトが正しく機能しない場合があります。 'python manage.pymigrate'を実行してそれらを適用します。 )

以上となります。

参考文献

Windows で Web 開発に Python を使用する (Microsoft)
Python 3をインストールしUbuntu 20.04サーバーにプログラミング環境を設定する方法 (DigitalOcean)





関連記事



公開日:2021年02月23日 最終更新日:2021年03月07日
記事NO:02889