Pythonのバージョンを確認する方法|Windows・Mac・Linuxで使えるコマンドと注意点

Pythonのインストール方法や開発環境はOSや配布方法によって異なり、同じPCに複数のPythonが入っていることも珍しくありません。

本稿では、Windows・macOS・Linuxでの「Pythonのバージョン確認」を起点に、仮想環境やConda、WSL、Dockerといった実行環境別の見方、PATHやwhich/whereで「どのPythonが呼ばれているか」の特定方法、pipとの対応関係、注意点やトラブル対処までを実例付きで詳しく解説します。

目次
  1. OS別:Pythonのバージョンを確認するコマンド【Windows・Mac・Linux】
  2. 実行環境別:仮想環境・Anaconda・WSL・Dockerでの確認方法
  3. どのPythonが使われているかの特定(PATH・which/where)
  4. 関連コマンドと表示の見方(pip・-V/–version)
  5. よくあるトラブルと注意点(Windows・Mac・Linux)
  6. まとめ

OS別:Pythonのバージョンを確認するコマンド【Windows・Mac・Linux】

各OSでの基本コマンドは概ね共通ですが、呼び名や前提が微妙に異なります。

Windowsでは「Pythonランチャー(py)」、macOS・Linuxでは「python3」を使うのが安全です。

WindowsでPythonのバージョンを確認(py –version/python –version/PowerShell・コマンドプロンプト)

Windowsでは、Python.org版のインストーラで導入した場合、Pythonランチャーpyが同梱されます。

複数バージョンが入っていても正しく選択できるため、まずはpy --versionの確認が確実です。

PowerShellでもコマンドプロンプトでも同様に実行できます。

PowerShellでの確認

PowerShell
# Python ランチャー経由のバージョン確認(推奨)
py --version
# 直接 python コマンドを呼ぶ場合(PATH 次第で別の Python を指すことがある)
python --version

# どの python.exe が使われるかを確認(PowerShell流)
Get-Command python
実行結果
Python 3.12.4
Python 3.12.4
CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Application     python.exe                                         3.12.4150  C:\Users\you\AppData\Local\Programs\Python\Python312\python.exe

コマンドプロンプト(CMD)での確認

Batch File
REM ランチャーでバージョン確認
py --version

REM 直接 python コマンドのバージョン確認
python -V

REM どの python が PATH 上で見つかるか
where python
実行結果
Python 3.11.9
Python 3.11.9
C:\Users\you\AppData\Local\Programs\Python\Python311\python.exe
C:\Windows\py.exe

py -0pでインストール済みのPython一覧(パス付き)を出せるのもWindows特有の便利機能です。

PowerShell
# インストール済み Python 一覧(バージョンと実体のパス)
py -0p
実行結果
 -V:3.8 C:\Users\you\AppData\Local\Programs\Python\Python38\python.exe
 -V:3.11 C:\Users\you\AppData\Local\Programs\Python\Python311\python.exe
 -V:3.12 C:\Users\you\AppData\Local\Programs\Python\Python312\python.exe

macOSでPythonのバージョンを確認(python3 –version/python -V/Homebrew環境)

macOSでは、歴史的にpythonが2系だった時代があり、近年は同名コマンドが提供されないこともあります。

そのため基本はpython3で確認します。

Shell
# 最優先で試す:python3
python3 --version

# 環境によっては python でも可(2系 or 非存在の可能性に注意)
python -V

# 実体パスを確認
which python3
実行結果
Python 3.12.3
Python 3.9.6
/opt/homebrew/bin/python3

Homebrew環境の確認ポイント

Apple Silicon(M1/M2/M3)では/opt/homebrew、Intelでは/usr/local配下に入るのが一般的です。

brewが指すPythonやPATHの整合を確認します。

Shell
# Homebrew の Python パッケージ情報
brew info python

# brew が置いた python3 の場所
which python3
# Apple Silicon で brew の PATH 設定が未反映なら次で反映
eval "$(/opt/homebrew/bin/brew shellenv)"
実行結果
python: stable 3.12.4 (bottled)
...
/opt/homebrew/bin/python3

LinuxでPythonのバージョンを確認(python3 –version/ディストリ標準の注意点)

Linuxディストリビューションではシステムスクリプトがpython3を前提とすることが多く、pythonは用意されない場合があります。

したがってpython3 --versionが基本です。

Shell
# ディストロ共通で安全
python3 --version

# 実体とシンボリックリンクの追跡
which python3
readlink -f "$(which python3)"  # 最終ターゲットの確認(GNU readlink)
実行結果
Python 3.10.12
/usr/bin/python3
/usr/bin/python3.10

ディストロ標準のPythonを置き換えるとシステムが不安定化することがあるため、配布パッケージのアップデートに従うか、ユーザー領域に独立した環境(venv/pyenv/Conda)を使うのが安全です。

実行環境別:仮想環境・Anaconda・WSL・Dockerでの確認方法

同じOS上でも、プロジェクトごとの仮想環境やコンテナ内では別のPythonが使われます。

環境ごとに中で確認し、その環境のpipを使うのが要点です。

仮想環境(venv/virtualenv)内でのPythonバージョン確認と有効化手順

標準のvenvでプロジェクト用の隔離環境を作成し、環境内のpython -Vを確認します。

Shell
# 例:Python 3.12 系の実行ファイルで venv を作る
python3 -m venv .venv  # カレント配下に .venv ディレクトリを生成

# macOS / Linux での有効化
source .venv/bin/activate

# 仮想環境内の Python バージョン確認
python -V

# 終了するとき
deactivate
実行結果
Python 3.12.4

Windowsでは有効化スクリプトが異なります(PowerShell既定)。

PowerShell
# Windows(PowerShell)の例
py -3.12 -m venv .venv

# 実行ポリシーによりブロックされる場合は、ユーザー範囲で解除(注意して実行)
# Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned -Force

# 有効化と確認
.venv\Scripts\Activate.ps1
python --version

# 終了
deactivate
実行結果
Python 3.12.4

virtualenvを使う場合も同様に、作成時にどのPythonで作るかを明示します。

Anaconda/MinicondaでのPythonバージョン確認(conda info/conda list/環境別)

Condaでは環境ごとにPythonがパッケージとして管理されます。

環境を有効化してから確認します。

Shell
# Conda の基本情報(ベースの Python も確認できる)
conda info

# 既存環境の一覧
conda env list

# 例:env名 myenv を有効化して Python を確認
conda activate myenv
python --version

# その環境にインストールされた Python パッケージのバージョン
conda list python
実行結果
     active environment : myenv
    python version : 3.11.7
# ...
# packages in environment at /Users/you/miniconda3/envs/myenv:
python                    3.11.7               hXXXX_cpython

WSLでのPythonバージョン確認(Windows側との違い・パスの分離)

WSL上のLinux環境はWindowsとは別のファイルシステムとPATHを持ちます。

Windows側のpythonpyとは独立している点に注意します。

PowerShell
# Windows から WSL(Ubuntu) を起動して中で確認
wsl -d Ubuntu -- python3 --version

# WSL 内でのパス確認(WSL シェルに入ってから)
which python3
実行結果
Python 3.10.12
/usr/bin/python3

Windows側でwhere pythonを実行しても、WSL内のPythonは表示されません。

環境ごとに個別確認します。

Dockerコンテナ内でのPythonバージョン確認(docker exec/イメージタグ)

公式pythonイメージのタグで系統を選び、コンテナ内でpython --versionを確認します。

タグは3.12, 3.11-slim, 3.10-alpineなどが利用できます。

Shell
# 一時コンテナで直接確認
docker run --rm python:3.12-slim python --version

# 既存コンテナ(例: myapp)に入って確認
docker exec -it myapp python --version
実行結果
Python 3.12.4
Python 3.11.9

ベースイメージのタグがそのまま実行環境の系統を示すため、Dockerfileを見ればどのPythonを使うか把握できます。

どのPythonが使われているかの特定(PATH・which/where)

「バージョンは合っているのに、なぜか動作が違う」場合、実際に呼ばれている実体の特定が重要です。

PATH上のPythonの場所を調べる(Windows: where python/macOS・Linux: which python3)

Windowsではwhere、macOS・Linuxではwhichtype -aで探索順に出力できます。

PowerShell
# Windows の PATH から見える python 達
where python
where py
実行結果
C:\Users\you\AppData\Local\Programs\Python\Python311\python.exe
C:\Windows\py.exe
Shell
# macOS / Linux:探索順をすべて表示
which -a python3
type -a python3

# シンボリックリンクの実体を解決(GNU環境なら -f)
readlink -f "$(which python3)"
実行結果
python3 is /opt/homebrew/bin/python3
python3 is /usr/bin/python3
/opt/homebrew/opt/python@3.12/bin/python3.12

複数バージョンの優先順位と切替(pyランチャー・シェルの優先度・シンボリックリンク)

Windowsではpyランチャーが強力です。

明示バージョン指定や優先順位の確認が可能です。

PowerShell
# インストール済みバージョンの一覧
py -0p

# 明示的に 3.11 を起動
py -3.11 --version

# 32bit 版を指定(インストールがある場合)
py -3.12-32 --version
実行結果
Python 3.11.9
Python 3.12.4

macOS・Linuxでは、PATHの前後関係で優先度が決まります。

Homebrewの複数系統(例:python@3.11, python@3.12)を切り替える場合はbrew link系コマンドや明示バイナリ名での呼び分けが実用的です。

Shell
# 明示バイナリ名で呼び分け
python3.11 --version
python3.12 --version

# Homebrew のリンク切替(必要に応じて)
brew unlink python@3.11 && brew link python@3.12

システム全体のpythonシンボリックリンクを付け替えるのは、他ソフトへの影響が大きいため推奨されません。

複数系統の共存や切替にはpyenvなどのバージョン管理ツールが安全です。

関連コマンドと表示の見方(pip・-V/–version)

pipの表示には「どのPythonに属するpipか」という重要情報が含まれます。

python -m pipで紐付けを明確にするのがベストプラクティスです。

pipのバージョンと対応Pythonの確認(pip –version/pip3/python -m pip –version)

Shell
# そのシェルで解決された pip(環境により python2/3 どちらでもありうる)
pip --version

# python3 系に対応する pip を明示(環境次第で同義)
pip3 --version

# 最も安全:呼びたい Python 実体に紐づく pip を明示実行
python -m pip --version
実行結果
pip 24.1.2 from /opt/homebrew/lib/python3.12/site-packages/pip (python 3.12)
pip 24.1.2 from /usr/lib/python3/dist-packages/pip (python 3.10)
pip 24.1.2 from ... (python 3.12)

末尾の括弧内(python 3.12)が、そのpipが操るPythonの系統を示します。

仮想環境内では仮想環境のpipが呼ばれるため、環境を有効化してから実行します。

Pythonのバージョン表示オプションの違い(–version と -V)

python --versionpython -Vは同義です。

より詳しいビルド情報が欲しければsys.versionを表示します。

Shell
# 同義
python --version
python -V

# 詳細なビルド文字列を得る
python -c "import sys; print(sys.version)"
実行結果
Python 3.12.4
Python 3.12.4
3.12.4 (main, Jun  6 2024, 10:22:15) [Clang 15.0.0 (clang-1500.0.40.1)]

CPythonではpython -VVでより詳細なビルド情報が出るケースもあります(環境による差異に注意)。

バージョン表記の読み方(メジャー・マイナー・マイクロ、64bit/32bitの確認)

Pythonのバージョンは一般に「メジャー.マイナー.マイクロ」です。

例えば3.12.4なら、3がメジャー、12がマイナー、4がマイクロです。

開発版・プレリリースはPEP 440に従い、a1(alpha)、b1(beta)、rc1(release candidate)などの接尾辞が付くことがあります。

実行中Pythonのアーキテクチャ(64bit/32bit)やプラットフォームも次で確認できます。

Python
# バージョンとアーキテクチャ、実行ファイルの場所を出力
import sys, platform, struct
print("Version:", sys.version.split()[0])        # 3.12.4
print("Implementation:", platform.python_implementation())  # CPython/PyPy 等
print("Arch:", struct.calcsize('P') * 8, "bit")  # 64 or 32
print("Machine:", platform.machine())            # x86_64/AMD64/arm64 等
print("Executable:", sys.executable)             # 実体のパス
実行結果
Version: 3.12.4
Implementation: CPython
Arch: 64 bit
Machine: arm64
Executable: /opt/homebrew/opt/python@3.12/bin/python3.12

よくあるトラブルと注意点(Windows・Mac・Linux)

バージョン確認でつまずく典型点と、迅速に解決するための要点をまとめます。

pythonが見つからない/PATH未設定時の対処(環境変数・再インストール)

Windowsでは「Add python.exe to PATH(PATHへ追加)」のチェックを外してインストールした場合、pythonが見つからないことがあります。

再インストールしてチェックを入れるか、Pythonランチャーpyで代替します。

PowerShell
# PATH に python がなくても、py があれば動くことが多い
py --version

# 現在の PATH を確認(Windows)
$env:PATH

macOSではHomebrewでインストールし、brew shellenvの設定をシェルに反映します。

Shell
brew install python
# シェルへ PATH を反映(Apple Silicon の例)
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
python3 --version

Linuxではディストロのパッケージ管理で導入します。

Shell
# Debian/Ubuntu 系
sudo apt update && sudo apt install -y python3 python3-venv

# RHEL/CentOS/AlmaLinux 等(例)
sudo dnf install -y python3

Windowsでpython3やpyが使えない場合の対処(App Execution Aliases・Microsoft Store版の注意)

Microsoft Store版の擬似エイリアスが有効だと、python実行時にストアが開くなどの混乱が起きます。

設定アプリの「アプリ → アプリ実行エイリアス」でpython.exepython3.exeのトグルをオフにします。

そのうえでPython.org版をインストールし、「Python Launcher for Windows(py)」の項目を有効にしてください。

pyが見つからない場合は、インストーラの「修復(Repair)」でランチャーを追加できます。

権限とシェル差異の注意(sudo/管理者権限/PowerShellとCMDの違い)

python --version自体に管理者権限は不要ですが、PowerShellとCMDでPATH解決の結果が異なることがあります。

仮想環境の有効化スクリプトはPowerShellでは実行ポリシーに阻まれる場合があるため、その際はユーザー範囲でRemoteSignedへ緩和するなど適切に対応します。

PowerShell
# 必要時のみ、ユーザー範囲で緩和(セキュリティ方針に従って判断)
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned -Force

Linuxでsudoを付けると、別のPython(rootのPATH)を呼んでしまうことがあります。

sudo -Eで環境を引き継ぐ、あるいはsudo python3 -Vの前に実体パスを明示するなど、影響を理解して使い分けます。

バージョン管理ツールの活用(pyenv/asdf/Anaconda/更新・切替のベストプラクティス)

複数のPython系統を安全に共存・切替したい場合は、ツールの活用が有効です。

  • pyenv(macOS/Linux、Windowsはpyenv-win):ユーザー領域に複数バージョンをインストールし、global/local/shellで切替
  • asdf(クロスプラットフォーム):asdf plugin-add pythonで類似の切替
  • Anaconda/Miniconda:データサイエンス用途で豊富なバイナリ配布。環境ごとにPythonをパッケージ管理
Shell
# pyenv の導入と利用例(macOS)
brew install pyenv
pyenv install 3.12.4
pyenv install 3.11.9
pyenv global 3.12.4
python -V      # -> 3.12.4

# プロジェクト直下でバージョン固定
pyenv local 3.11.9
python -V      # -> 3.11.9

ベストプラクティスとして、システムPythonは手を加えず、プロジェクトごとに仮想環境を作成し、python -m pipでパッケージ管理を一貫させることを推奨します。

まとめ

Pythonのバージョン確認は単に--versionを打つだけでなく、「どの環境で、どの実体が呼ばれているか」を把握することが肝要です。

Windowsではpyランチャー、macOS・Linuxではpython3が基本で、仮想環境やConda、WSL、Docker内では各環境のシェルから確認します。

where/whichで実体パスを特定し、pip --versionpython -m pip --versionでPythonとの対応を検証すれば、混乱の大半は未然に防げます。

トラブル時はPATHやエイリアス、権限・シェル差異を点検し、必要に応じてpyenvやCondaなどのツールで安全にバージョンを管理してください。

慣れてくれば、プロジェクト開始時に「環境を有効化してpython -Vを確認する」だけで、多くの不具合を回避できるはずです。

クラウドSSLサイトシールは安心の証です。

URLをコピーしました!