Pythonを使っていると「今どのPythonで動いているのか」「仮想環境ごとにバージョンが合っているか」を正確に把握することがとても重要になります。
本記事では、Python本体のバージョン確認コマンドを体系的に整理し、標準のpythonコマンドからconda環境、OS別の確認方法まで、実務で迷わないレベルで詳しく解説します。
Pythonバージョン確認の基本コマンド一覧
まずは、どの環境でもほぼ共通して利用できる、Pythonバージョン確認の基本的な方法を整理します。
ここを押さえておくと、後で出てくる仮想環境やconda環境の話も理解しやすくなります。
python –versionとpython -Vの違いと使い分け
最もよく使われるのがpython --versionとpython -Vです。
どちらも基本的には同じ結果を返しますが、使い分けや注意点を整理しておきます。

コマンドの書式と動作
基本形は次の2つです。
python --version
python -V
典型的な実行結果は次のようになります。
Python 3.11.7
どちらのコマンドも、インストールされている実行中のpythonコマンドのメジャー・マイナーバージョンとパッチバージョンを表示します。
python –versionとpython -Vの違い
実務的にはほぼ同じですが、細かい違いとして次の点があります。
--versionはロングオプション、-Vはショートオプションです。- OSやディストリビューションによって、
stderrに出力されるかstdoutに出力されるかが異なるバージョンがあります。- スクリプトの中で出力をパースする場合、どちらのストリームに出るかを意識する必要があります。
表にまとめると次のようになります。
| 項目 | python –version | python -V |
|---|---|---|
| オプション種別 | ロングオプション | ショートオプション |
| 表示内容 | Pythonのバージョン | 同じ |
| 出力先 | バージョンやビルドによってstdout/stderrが混在 | 同様 |
| 人間が手で打つとき | 読みやすい | 少し短く書ける |
| スクリプト内 | 可読性重視なら–version | 省スペース重視なら-V |
python3, pyコマンドとの関係
環境によってはpython3やpy(Windows)を使う必要があります。
例えば、次のように実行すると、それぞれのコマンドに対応したPythonのバージョンを確認できます。
python3 --version
py --version
どのコマンドが自分の環境のデフォルトなのかは、後述するOS別の節で詳しく説明します。
対話モードでのimport sysによるバージョン確認
スクリプトやREPL(対話モード)の中で、実際にいま動いているPythonのバージョンを知りたい場面も多くあります。
そこで活躍するのがsysモジュールです。

対話モードでの基本的な確認
Python対話モードを起動して、次のように入力します。
python
続いて、対話モード内で次のコードを入力します。
>>> import sys # sysモジュールを読み込む
>>> sys.version # バージョン情報を文字列で表示
例えば次のような出力が得られます。
'3.11.7 (main, Oct 1 2024, 10:00:00) [GCC 12.2.0]'
import sysを使うメリット
コードの中からバージョンを判定したい場合には、sysを使うのがもっとも確実です。
例えば次のような場面があります。
- ライブラリ内で「Python 3.8以上でのみ有効な機能」を条件分岐したい場合
- ログに「どのPythonで実行されたか」を出力したい場合
- 教育用スクリプトで利用者のPythonバージョンをチェックしたい場合
こうした用途では、後述するsys.version_infoと組み合わせることで、より正確な判定ができます。
sys.version・sys.version_infoの見方と使い所
sys.versionは人間向けの情報が多く、sys.version_infoは機械的な処理に適した形式になっています。
それぞれの違いと、どう使い分けるべきかを整理します。

sys.versionの見方
sys.versionは文字列として、次のような情報を含みます。
>>> import sys
>>> print(sys.version)
3.11.7 (main, Oct 1 2024, 10:00:00) [GCC 12.2.0]
この文字列には主に次の内容が含まれます。
- Python本体のバージョン(3.11.7)
- ビルドブランチ名(main)
- ビルド日時
- 使用コンパイラ(GCCなど)
人間が一目で環境の概要を知るには便利ですが、文字列パースしてバージョン比較するのは推奨されません。
sys.version_infoの構造と使い所
sys.version_infoは、タプル風のオブジェクトとして、バージョンの各要素を扱いやすい形で提供します。
>>> import sys
>>> sys.version_info
sys.version_info(major=3, minor=11, micro=7, releaselevel='final', serial=0)
具体的なフィールドは次の通りです。
| フィールド | 意味 | 例 |
|---|---|---|
| major | メジャーバージョン | 3 |
| minor | マイナーバージョン | 11 |
| micro | パッチバージョン | 7 |
| releaselevel | リリースレベル(alpha, beta, candidate, final) | ‘final’ |
| serial | シリアル番号 | 0 |
バージョン条件分岐のサンプルコード
実運用でよく使うパターンとして、「Python 3.8以上かどうか」を判定するコード例を示します。
# version_check.py
import sys
# バージョンタプルを作成 (major, minor) だけ比較すればよいケースが多いです
current = sys.version_info
required = (3, 8)
# Python 3.8以上かどうかを判定
if (current.major, current.minor) >= required:
print(f"OK: Python {current.major}.{current.minor} 以上です。")
else:
print(
f"NG: Python {required[0]}.{required[1]} 以上が必要です。"
f" 現在のバージョンは {current.major}.{current.minor} です。"
)
想定される実行例を示します。
python version_check.py
OK: Python 3.11 以上です。
このように比較演算子でタプル同士を比較することで、シンプルかつ安全にバージョン条件を記述できます。
仮想環境ごとのPythonバージョン確認
次に、仮想環境(venvやvirtualenvなど)ごとにPythonバージョンを把握する方法について解説します。
同じマシンでも、環境ごとにPythonのバージョンが異なることは珍しくありません。
venv環境でのpythonバージョン確認方法
標準ライブラリのvenvを使って仮想環境を作成した場合、その環境を有効化した上でバージョン確認を行うのが基本です。

venv仮想環境の作成と有効化
まずは仮想環境自体の復習も兼ねて、一連の流れを示します。
# プロジェクトディレクトリに移動
cd myproject
# venvという名前で仮想環境を作成
python -m venv venv
次に、環境を有効化します。
source venv/bin/activate
venv\Scripts\activate
.\venv\Scripts\Activate.ps1
プロンプトの先頭に(venv)のような表示が付けば、有効化に成功しています。
有効化後のpythonバージョン確認
有効化された状態で、次のように確認します。
(venv) python --version
Python 3.11.7
ここで表示されるのはその仮想環境が参照しているPython本体のバージョンです。
仮想環境を有効化していない状態でpython –versionを打っても、グローバル環境のPythonが表示されてしまう点には注意してください。
pip list・pip showからPythonバージョンを推測する方法
ときには、直接python --versionを打てない状況や、インタラクティブに環境を触れない状況もあります。
そのような場合、pipまわりの情報からPythonバージョンを間接的に推測できるケースがあります。

pip listから読み取れること
pip list自体は直接Pythonバージョンを表示しませんが、実行できている時点で、その環境のPythonは生きていることがわかります。
また、特定のライブラリがRequires-Python条件を持つ場合、そこから推測できます。
pip list
Package Version
---------- -------
pip 24.0
setuptools 69.0.0
...
これだけではバージョンはわかりませんが、次のpip showが役に立ちます。
pip showからの推測例
pip showで、あるパッケージのメタデータを確認します。
pip show pip
Name: pip
Version: 24.0
Summary: The PyPA recommended tool for installing Python packages.
Requires-Python: >=3.7
Location: /path/to/venv/lib/python3.11/site-packages
特に重要な情報は次の2点です。
Requires-Python: そのパッケージがサポートするPythonバージョン範囲Location: インストール先パスにpython3.11のようなディレクトリ名が含まれる
このLocationから、少なくともpython3.11系で動いていることが推測できます。
完全に確定はできませんが、システムに直接触れない状況の調査などでは、有用な手掛かりになります。
which・whereコマンドで実行されているpythonを特定
Pythonが複数インストールされている環境では、「どのpythonが実行されているか」が重要な意味を持ちます。
そこで使うのが、which(Unix系)やwhere(Windows)コマンドです。

Unix系(macOS, Linux)でのwhich
macOSやLinuxでは、次のように実行します。
which python
/home/user/myproject/venv/bin/python
このように表示されていれば、現在は仮想環境内(venv/bin/python)のPythonが実行されていることがわかります。
仮想環境を無効化して再度実行すると、次のようにパスが変わる場合があります。
which python
/usr/bin/python
このパスの違いが、そのまま「どのPythonが呼ばれているか」を示しています。
Windowsでのwhere
Windowsではwhereコマンドを使います。
where python
C:\Users\user\myproject\venv\Scripts\python.exe
C:\Users\user\AppData\Local\Programs\Python\Python311\python.exe
C:\Windows\py.exe
複数行表示される場合、最初の行が実際に使われている実行ファイルです。
PATHの優先順位により、どのPythonが使われているかを確認できます。
パスの場所とpython –versionの結果は必ずセットで確認し、意図と違うPythonを使っていないかチェックしましょう。
conda環境でのPythonバージョン確認
AnacondaやMinicondaなどのconda環境では、conda独自のコマンドでPythonバージョンや環境ごとの設定を確認できます。
データサイエンス系の現場では、こちらを使う機会が非常に多いです。
conda list・conda infoでPythonバージョンを確認する
conda環境では、環境を有効化した上でconda listやconda infoを用いると、Python関連の詳細な情報が得られます。

conda listでPythonパッケージを見る
対象の環境を有効化してからconda listを実行します。
conda activate myenv
conda list
# packages in environment at /home/user/miniconda3/envs/myenv:
#
# Name Version Build Channel
python 3.11.7 h955ad1f_0
pip 24.0 py311h06a4308_0
...
ここでNameがpythonとなっている行のVersion列が、その環境のPythonバージョンです。
conda infoでより詳細な情報を確認
conda infoを使うと、アクティブな環境やPythonバージョンを含む要約情報が得られます。
conda info
active environment : myenv
active env location : /home/user/miniconda3/envs/myenv
shell level : 2
user config file : /home/user/.condarc
populated config files : ...
conda version : 24.3.0
conda-build version : not installed
python version : 3.11.7.final.0
virtual packages : ...
ここではpython version行が重要です。
この値が現在有効化されているconda環境のPythonバージョンを示します。
conda env listから環境ごとのバージョンを把握
複数のconda環境を使っている場合、「どの環境がどのPythonバージョンなのか」を一覧で把握したくなります。
conda env listを使うと、環境とパスをまとめて確認できます。

conda env listの出力例
conda env list
# conda environments:
#
base * /home/user/miniconda3
py38 /home/user/miniconda3/envs/py38
py311 /home/user/miniconda3/envs/py311
datasci /home/user/miniconda3/envs/datasci
このコマンド単体ではPythonバージョンは直接表示されませんが、環境を1つずつ有効化してpython --versionを実行することで、環境名と特定のPythonバージョンを対応付けてメモすることができます。
conda activate py38
python --version # -> Python 3.8.x
conda activate py311
python --version # -> Python 3.11.x
チーム開発などでは、「py38」「py311」のように環境名にバージョンを含める運用にしておくと、後から見てもわかりやすくなります。
conda installでPythonバージョンを切り替えるポイント
condaでは、環境ごとに異なるPythonバージョンをインストールしたり、後からバージョンを変更したりできます。
ただし、既存環境のバージョンを無理に変えると依存関係が崩れることがあるため、注意が必要です。

新規環境をPythonバージョン指定で作成
もっとも安全でおすすめなのは、新しい環境を作るときにPythonバージョンを指定する方法です。
# Python 3.8環境を作成
conda create -n py38 python=3.8
# Python 3.11環境を作成
conda create -n py311 python=3.11
作成後、それぞれの環境を有効化してpython --versionで確認します。
conda activate py38
python --version
# -> Python 3.8.x
conda activate py311
python --version
# -> Python 3.11.x
既存環境のPythonバージョン変更
どうしても既存環境でPythonのバージョンを上げ下げしたい場合は、次のように指定します。
conda activate myenv
conda install python=3.11
ただし、この操作により環境内のパッケージが大きく入れ替わったり、互換性のないバージョンに自動で切り替わる可能性があります。
作業前にconda list –explicitなどで環境のバックアップを取る、あるいは別名で新しい環境を作ることを検討してください。
OS別のPythonバージョン確認コマンド
最後に、OSごとによく使うコマンドや注意点を整理します。
同じpythonという名前でも、OSやインストール方法によって実態が異なるため、ここを理解しておくとトラブルシューティングが楽になります。
Windows(cmd・PowerShell)でのpythonバージョン確認
Windowsでは、pythonコマンドのほかにpyランチャーが存在するため、少し事情が複雑です。

cmdでの基本的な確認
コマンドプロンプト(cmd)では、まず次のように実行します。
python --version
Python 3.11.7
もし'python' は、内部コマンドまたは外部コマンド...として認識されていませんと出る場合は、PATHが通っていないか、Pythonがインストールされていない可能性があります。
pyランチャーでの確認
Windowsの多くの環境では、pyコマンド(Windows用Pythonランチャー)も利用できます。
py --version
Python 3.11.7
複数バージョンがインストールされている場合、py -0で一覧を確認できます。
py -0
Installed Pythons found by py Launcher for Windows
-3.11-64 *
-3.10-64
-3.9-64
アスタリスク*の付いたものがデフォルトで起動されるPythonです。
特定バージョンを明示したいときは、次のように指定します。
py -3.10 --version
macOSでのpython3・brew経由インストールのバージョン確認
macOSでは、OS組み込みのPythonと、ユーザーがインストールしたPythonが混在しがちです。
特にbrew経由でインストールした場合は、実行ファイルの場所やコマンド名が変わります。

python3コマンドでの確認
最新のmacOSでは、pythonよりもpython3が標準です。
python3 --version
Python 3.11.7
もしpythonも存在する場合は、それが古いPython2.xである可能性があるため、macOSではpython3を使うのが基本方針です。
Homebrew経由インストールの場合
HomebrewでPythonをインストールした場合、どのバージョンが入っているかはbrewコマンドで確認できます。
brew list python
/opt/homebrew/Cellar/python@3.11/3.11.7/bin/python3
...
また、実際にどのpython3が使われているかはwhichで確認します。
which python3
/opt/homebrew/bin/python3
このパスが/usr/bin/python3でないことを確認できれば、「Homebrew版のPythonが使われている」と判断できます。
Linuxでのwhich pythonとupdate-alternativesの確認方法
Linuxでは、ディストリビューションによってPythonの扱いが異なりますが、共通してwhichやupdate-alternativesを用いた確認が有効です。

which python / which python3 での確認
まずは、どのPythonが使われているかを把握します。
which python
which python3
/usr/bin/python
/usr/bin/python3
環境によってはpythonが存在せず、python3のみが有効な場合もあります。
その場合はpython3 --versionを使います。
python3 --version
Python 3.11.7
update-alternativesの設定確認(Debian/Ubuntu系)
Debian系ディストリビューションでは、update-alternativesでpythonやpython3の実体を切り替えている場合があります。
sudo update-alternatives --config python3
There are 2 choices for the alternative python3 (providing /usr/bin/python3).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/python3.11 2 auto mode
1 /usr/bin/python3.10 1 manual mode
2 /usr/bin/python3.11 2 manual mode
この出力から、現在はpython3.11がデフォルトであることがわかります。
ここでの設定変更はシステム全体に影響するため、システム管理者レベルでの慎重な運用が必要です。
まとめ
本記事では、Pythonのバージョンを確認するさまざまな方法を、標準コマンド、仮想環境、conda環境、OS別の観点から整理しました。
日常的にはpython --versionやpython3 --versionで事足りますが、複数環境が入り混じる実務では、which/whereで実行ファイルの場所を確認し、condaやvenvの有効化状態を意識することが重要になります。
特に、コード内での条件分岐にはsys.version_infoを使うことで、確実かつ読みやすいバージョンチェックが可能です。
ここで紹介したコマンド群を組み合わせて、自分の開発環境を常に正しく把握できるようにしておきましょう。
