Pythonのインストール方法や開発環境はOSや配布方法によって異なり、同じPCに複数のPythonが入っていることも珍しくありません。
本稿では、Windows・macOS・Linuxでの「Pythonのバージョン確認」を起点に、仮想環境やConda、WSL、Dockerといった実行環境別の見方、PATHやwhich/whereで「どのPythonが呼ばれているか」の特定方法、pipとの対応関係、注意点やトラブル対処までを実例付きで詳しく解説します。
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での確認
# 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)での確認
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特有の便利機能です。
# インストール済み 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
で確認します。
# 最優先で試す: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の整合を確認します。
# 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
が基本です。
# ディストロ共通で安全
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
を確認します。
# 例: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既定)。
# 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がパッケージとして管理されます。
環境を有効化してから確認します。
# 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側のpython
やpy
とは独立している点に注意します。
# 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
などが利用できます。
# 一時コンテナで直接確認
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ではwhich
やtype -a
で探索順に出力できます。
# Windows の PATH から見える python 達
where python
where py
C:\Users\you\AppData\Local\Programs\Python\Python311\python.exe
C:\Windows\py.exe
# 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
ランチャーが強力です。
明示バージョン指定や優先順位の確認が可能です。
# インストール済みバージョンの一覧
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
系コマンドや明示バイナリ名での呼び分けが実用的です。
# 明示バイナリ名で呼び分け
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)
# そのシェルで解決された 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 --version
とpython -V
は同義です。
より詳しいビルド情報が欲しければsys.version
を表示します。
# 同義
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)やプラットフォームも次で確認できます。
# バージョンとアーキテクチャ、実行ファイルの場所を出力
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
で代替します。
# PATH に python がなくても、py があれば動くことが多い
py --version
# 現在の PATH を確認(Windows)
$env:PATH
macOSではHomebrewでインストールし、brew shellenv
の設定をシェルに反映します。
brew install python
# シェルへ PATH を反映(Apple Silicon の例)
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
python3 --version
Linuxではディストロのパッケージ管理で導入します。
# 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.exe
やpython3.exe
のトグルをオフにします。
そのうえでPython.org版をインストールし、「Python Launcher for Windows(py)」の項目を有効にしてください。
py
が見つからない場合は、インストーラの「修復(Repair)」でランチャーを追加できます。
権限とシェル差異の注意(sudo/管理者権限/PowerShellとCMDの違い)
python --version
自体に管理者権限は不要ですが、PowerShellとCMDでPATH解決の結果が異なることがあります。
仮想環境の有効化スクリプトはPowerShellでは実行ポリシーに阻まれる場合があるため、その際はユーザー範囲でRemoteSigned
へ緩和するなど適切に対応します。
# 必要時のみ、ユーザー範囲で緩和(セキュリティ方針に従って判断)
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をパッケージ管理
# 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 --version
やpython -m pip --version
でPythonとの対応を検証すれば、混乱の大半は未然に防げます。
トラブル時はPATHやエイリアス、権限・シェル差異を点検し、必要に応じてpyenvやCondaなどのツールで安全にバージョンを管理してください。
慣れてくれば、プロジェクト開始時に「環境を有効化してpython -Vを確認する」だけで、多くの不具合を回避できるはずです。