この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:4
ページ更新者:guest
更新日時:2026-06-11 07:10:02

タイトル: バージョンの確認方法
SEOタイトル: Django バージョン確認方法完全ガイド(django-admin / python -m django / get_version)

この記事の要点
  • コマンドライン: django-admin --version または python -m django --version
  • Python シェル: import django; django.get_version()(または django.VERSION でタプル)
  • pip 経由: pip show djangopip list | grep -i django
  • LTS とリリースサイクル: 3.2 / 4.2 / 5.2 が LTS(3 年サポート)、フィーチャーリリースは 8 か月サポート
  • Python 互換性: Django 5.x は Python 3.10+ 必須、4.2 LTS は 3.8+。古い Python では新版が入らない

Django バージョンを確認する 4 つの方法

方法 1: django-admin コマンド

django-admin --version
# 5.2.1

# 仮想環境を有効化していること
source .venv/bin/activate
django-admin --version

方法 2: python -m django

python -m django --version
# 5.2.1

# 複数 Python があってどちらの Django か明確にしたいとき有用
python3.11 -m django --version
python3.12 -m django --version

方法 3: Python シェルで import

>>> import django
>>> django.get_version()
'5.2.1'

>>> django.VERSION
(5, 2, 1, 'final', 0)

# タプルでバージョン比較できる
>>> if django.VERSION >= (4, 2):
...     print('4.2 以上')

# get_version は文字列、VERSION はタプル
# 最終フィールド: 'alpha' / 'beta' / 'rc' / 'final'

方法 4: pip コマンド

# 詳細
pip show django
# Name: Django
# Version: 5.2.1
# Summary: A high-level Python Web framework ...
# Location: .../site-packages
# Requires: asgiref, sqlparse
# Required-by: ...

# 一覧から検索
pip list | grep -i django
# Django                 5.2.1
# django-environ         0.11.2

# JSON で取得
pip list --format=json | python -c "import json,sys; print([p['version'] for p in json.load(sys.stdin) if p['name'].lower()=='django'][0])"

プロジェクト内で確認

稼働中のプロジェクトに対しては manage.py 経由が確実です:

# プロジェクトの仮想環境 + プロジェクトの Django を使う
python manage.py --version
# または
python manage.py shell -c "import django; print(django.get_version())"

# settings.py のロード問題を回避したいとき
python -c "import django; print(django.get_version())"

requirements.txt / pyproject.toml で確認

# requirements.txt
grep -i "^django" requirements.txt
# Django==5.2.1

# pyproject.toml (Poetry)
grep -A1 "\[tool.poetry.dependencies\]" pyproject.toml
# python = "^3.12"
# django = "^5.2"

# Pipfile
grep -A2 "\[packages\]" Pipfile
# django = "==5.2.1"

Django のリリースサイクルと LTS

Django は約 8 か月ごとに新バージョンがリリースされ、2 年に 1 度 LTS(Long-Term Support)版が出ます。LTS は3 年間のサポート期間で、それ以外のリリースは約 16 か月(次の +1 リリース時まで)。

バージョン種別サポート期間必要 Python
5.2LTS2025-04 〜 2028-043.10+
5.1通常2024-08 〜 2025-123.10+
5.0通常2023-12 〜 2025-043.10+
4.2LTS2023-04 〜 2026-043.8+
3.2LTS (EOL)2021-04 〜 2024-043.6+

本番運用するプロジェクトはサポート期間が長い LTS を選ぶのが定石です。チュートリアル / 学習なら最新通常版で OK。

Python と Django のバージョン互換

Python動く Django
3.124.2, 5.0, 5.1, 5.2
3.114.1, 4.2, 5.0, 5.1, 5.2
3.104.1, 4.2, 5.0, 5.1, 5.2
3.94.0, 4.1, 4.2
3.83.2, 4.0, 4.1, 4.2
3.73.0, 3.1, 3.2
# Python のバージョン確認
python --version
python3 --version

# 古い Python で新しい Django を入れようとすると
# ERROR: Could not find a version that satisfies the requirement django==5.2

依存パッケージの互換性確認

Django プラグイン(django-rest-framework / django-debug-toolbar 等)はDjango のメジャー / マイナーバージョンに連動することが多い。pip check で依存破れを検出:

pip check
# No broken requirements found.   ← OK

# 依存ツリー(pipdeptree)
pip install pipdeptree
pipdeptree -p django
# Django==5.2.1
# ├── asgiref [required: >=3.8.1,<4, installed: 3.8.1]
# └── sqlparse [required: >=0.3.1, installed: 0.5.0]

ロックファイルでの確認

# Poetry
poetry show django
# name        : django
# version     : 5.2.1
# description : A high-level Python Web framework ...

# Pipenv
pipenv graph | head
# Django==5.2.1
#   - asgiref [required: >=3.8.1,<4, installed: 3.8.1]
#   - sqlparse [required: >=0.3.1, installed: 0.5.0]

# uv
uv pip show django

本番サーバで稼働中のバージョンを確認

# 本番サーバに SSH
ssh prod
cd /var/www/myapp

# 仮想環境を有効化
source .venv/bin/activate
python -m django --version

# または直接
.venv/bin/python -c "import django; print(django.get_version())"

# Docker コンテナ内で
docker exec -it myapp python -m django --version

# Kubernetes Pod 内で
kubectl exec -it pod/myapp -- python -m django --version

バージョンアップグレード時の確認

# アップグレード前のバージョン記録
pip freeze > requirements.before.txt

# アップグレード
pip install --upgrade django

# アップグレード後の差分
pip freeze > requirements.after.txt
diff requirements.before.txt requirements.after.txt

# テスト
python manage.py check
python manage.py migrate --dry-run
python manage.py test

# Deprecation Warning を見逃さないために
python -Wd manage.py runserver

古い Django プロジェクトの判定

新しく引き継いだプロジェクトで Django バージョンを推定する手がかり:

場所確認ポイント
requirements.txt / Pipfile.lock / poetry.lockDjango==x.y
setup.py / setup.cfg / pyproject.tomlinstall_requires / dependencies
manage.py古い形式(execute_from_command_line が無い)は 1.x
settings.pyMIDDLEWARE_CLASSES(旧)/ MIDDLEWARE(新 1.10+)
URL 定義url()(旧)/ path()(2.0+)
django.utils.encoding.smart_text3.0 で削除(旧コード)

FAQ

Q: django-admin --version が「command not found」
A: 仮想環境が有効化されていない可能性大。which django-admin でパスを確認、source .venv/bin/activate。グローバルにも入れたいなら pipx install django

Q: グローバルとプロジェクトで異なるバージョンがある
A: 仮想環境内では仮想環境の Django が呼ばれます。which python / which django-admin で実体を確認してください。

Q: ベータ版・rc 版が入ってしまった
A: django.VERSION(5, 2, 0, 'rc', 1) のような形になる。pip install "django>=5.2,<6" --upgrade で安定版にダウングレード。