タイトル: インストール方法(Linux/Mac)
SEOタイトル: Django インストール完全ガイド(Linux/Mac で venv + pip install django)
| この記事の要点 |
|
前提: Python 3 の準備
Django 5.x は Python 3.10 以降、Django 4.2 LTS は Python 3.8 以降必須です。まず Python のバージョン確認:
python3 --version
# Python 3.11.6
which python3
# /usr/bin/python3 など
pip3 --version
# pip 23.x ...
Linux でのインストール
Ubuntu / Debian
# Python 3 + venv + pip
sudo apt update
sudo apt install -y python3 python3-venv python3-pip
# 動作確認
python3 --version
python3 -m venv --help
CentOS / RHEL / Rocky / AlmaLinux
# RHEL 9 / Rocky 9
sudo dnf install -y python3 python3-pip
# 新しめの Python を入れたい場合
sudo dnf install -y python3.11 python3.11-pip
# 開発に必要なツール(C 拡張ビルド時)
sudo dnf groupinstall -y "Development Tools"
sudo dnf install -y python3-devel
pyenv で複数バージョン管理(推奨)
# Linux / Mac 共通
curl https://pyenv.run | bash
# ~/.bashrc に追記
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
# インストール
pyenv install 3.12.4
pyenv global 3.12.4
python --version
Mac でのインストール
Homebrew Python
# Homebrew がなければ
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Python 3 を導入
brew install python@3.12
# パス確認
which python3
# /opt/homebrew/bin/python3 (Apple Silicon)
# /usr/local/bin/python3 (Intel Mac)
Mac には /usr/bin/python3(macOS 同梱)もありますが、システム用なのでアプリ開発には Homebrew 版か pyenv を使うのが定石。
Xcode コマンドラインツール
# Pillow, psycopg2 等の C 拡張ビルドに必要
xcode-select --install
仮想環境(venv)を作る
Django プロジェクトごとに隔離環境を作るのが定石です:
# プロジェクト用ディレクトリ
mkdir ~/projects/myapp
cd ~/projects/myapp
# 仮想環境 (.venv) を作成
python3 -m venv .venv
# 有効化
source .venv/bin/activate
# プロンプトに (.venv) と表示される
# 確認: Python と pip がプロジェクト配下を指す
which python # .../myapp/.venv/bin/python
which pip # .../myapp/.venv/bin/pip
# 抜けるときは
deactivate
Django をインストール
# 仮想環境が有効化された状態で
pip install --upgrade pip
pip install django
# バージョン指定したい場合
pip install "django==5.2.*" # 5.2 系の最新
pip install "django>=4.2,<5" # 4.2 LTS 系
pip install django==5.2.1 # 特定バージョン
# 確認
django-admin --version
# 5.2.1
python -m django --version
# pip freeze で記録
pip freeze > requirements.txt
# Django==5.2.1
# asgiref==3.8.1
# sqlparse==0.5.0
初めての Django プロジェクト
# プロジェクト作成
django-admin startproject myproject .
# 末尾の . で「カレントに直接展開」
# ディレクトリ構成:
# myapp/
# ├── manage.py
# ├── myproject/
# │ ├── __init__.py
# │ ├── settings.py
# │ ├── urls.py
# │ ├── asgi.py
# │ └── wsgi.py
# └── .venv/
# 初期マイグレーション
python manage.py migrate
# 開発サーバ起動
python manage.py runserver
# → http://127.0.0.1:8000/
# 「The install worked successfully!」が表示されれば OK
アプリの追加
# polls アプリを作成
python manage.py startapp polls
# settings.py の INSTALLED_APPS に追記
# INSTALLED_APPS = [
# ...
# 'polls.apps.PollsConfig',
# ]
# Model 作成後
python manage.py makemigrations
python manage.py migrate
# スーパーユーザー作成(admin 画面用)
python manage.py createsuperuser
# → http://127.0.0.1:8000/admin/ にログイン
Docker での Django
# Dockerfile
FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]# ビルド & 起動
docker build -t myapp .
docker run -p 8000:8000 myapp
# 単発で試したいだけ
docker run -it --rm -p 8000:8000 \
-v $PWD:/app -w /app python:3.12 bash
# コンテナ内で
pip install django
django-admin startproject myproject .
python manage.py runserver 0.0.0.0:8000
Pipenv / Poetry での導入
# --- Pipenv ---
pip install --user pipenv
pipenv install django
pipenv shell
django-admin startproject myproject .
python manage.py runserver
# --- Poetry ---
curl -sSL https://install.python-poetry.org | python3 -
poetry new myapp --src
cd myapp
poetry add django
poetry run django-admin startproject myproject .
poetry run python manage.py runserver
# --- uv(推奨) ---
curl -LsSf https://astral.sh/uv/install.sh | sh
uv init myapp
cd myapp
uv add django
uv run django-admin startproject myproject .
uv run python manage.py runserver
よくあるエラー
| 症状 | 原因 | 対処 |
|---|---|---|
command not found: django-admin | 仮想環境が有効化されていない or PATH 問題 | source .venv/bin/activate |
ModuleNotFoundError: No module named 'django' | システム Python に入れてしまった | 仮想環境で再インストール |
You have NN unapplied migration(s) | 初回マイグレーション忘れ | python manage.py migrate |
Error: That port is already in use | 8000 番が使用中 | runserver 8080 で別ポート |
| ssl モジュールがない (pyenv) | OpenSSL 開発パッケージ不足 | OS の openssl-devel 入れて pyenv 再ビルド |
動作確認チェックリスト
python3 --versionで 3.10+ が出るsource .venv/bin/activateで(.venv)プロンプトpython -c "import django; print(django.get_version())"でバージョン表示django-admin startproject myproject .でプロジェクトが作れるpython manage.py runserver→ ブラウザでロケット画面
FAQ
Q: pip と pip3 の違いは?
A: 仮想環境内では同じものを指す。システム側では pip3 が Python 3 の pip を確実に呼ぶ。python -m pip が最も確実。
Q: Apple Silicon Mac で動かない
A: Homebrew は /opt/homebrew に入る。PATH に /opt/homebrew/bin が無いと brew install した python が呼べない。
Q: 本番では何を使う?
A: runserver は開発専用。本番は Gunicorn / uWSGI + Nginx、または Docker + ASGI(Daphne / Uvicorn)。