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バージョンを管理する![]() |
pip | Pythonに追加する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用に作り直したバージョン管理ツールです。「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
(2023/9/22追記)
pyenvが動作しなくなった場合は/binを/shimsに変更して下さい。
// Pythonのバージョンを3.8.8にする // ※バージョンの詳細は公式で確認可能です。 // ※https://www.python.org/downloads/ pyenv install 3.8.8 // (非推奨)このバージョンを全ディレクトリに適用 pyenv global 3.8.8 ↑どちらか↓ // (推奨)このバージョンを現在のディレクトリ配下のみ適用 pyenv local 3.8.8 // (注意) 本番環境では次のように共有設定をONにする。 env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.8.8 // ※2022/4/13追記 現在の新しいバージョンでは共有設定は不要のようです。 // 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)