自分の環境に入っているPythonが何バージョンなのかを正しく把握しておくと、ライブラリの対応可否やコードの挙動の差を予測しやすくなります。
本記事ではWindowsとMacの両方で、コマンドライン、仮想環境、IDE、さらにはコードから取得する方法まで、初心者の方にもわかりやすく丁寧に解説します。
コマンド早見表
最初に、目的別に最短で確認できるコマンドをまとめます。
以降で詳しく説明します。
目的 | Windows | Mac |
---|---|---|
いま使われるPythonのバージョンを知りたい | py -V または python --version | python3 --version |
インストール済みを一覧で見たい | py -0 または py -0p | which -a python3 |
実行ファイルの場所を知りたい | where python または py -0p | which -a python3 |
仮想環境で確認したい | 有効化後に python --version | 有効化後に python --version |
以下では、Windows、Mac、仮想環境やツール別、そしてコードから取得する方法の順に詳しく解説します。
WindowsでPythonのバージョンを確認する
PowerShell/コマンドで確認(py -V, python –version)
どちらを使うべきか
WindowsではPythonランチャーであるpy
コマンドが標準で導入されることが多く、複数バージョンがある場合でも最適に選択してくれます。
まずはpy -V
で確認し、必要に応じてpython --version
でも確認すると違いが見えて便利です。
実行例(PowerShell, コマンドプロンプト共通)
# Pythonランチャー経由でデフォルトPythonのバージョンを表示
py -V
# PATH上のpython.exeのバージョンを表示
python --version
Python 3.11.6
Python 3.11.6
バージョンが異なる表示になる場合は、py
が指すデフォルトとPATH
上のpython
が異なる場所を指している可能性があります。
複数バージョンを一覧表示(py -0, py -0p)
インストール済みの一覧を表示
# インストール済みPythonの一覧
py -0
Installed Pythons found by py Launcher for Windows:
- 3.12-64
* 3.11-64
- 3.10-64
アスタリスク(*)がデフォルトで使われるバージョンです。
絶対パスつきで一覧表示
# バージョンごとの実行ファイルの絶対パスを表示
py -0p
- 3.12-64 C:\Users\you\AppData\Local\Programs\Python\Python312\python.exe
* 3.11-64 C:\Users\you\AppData\Local\Programs\Python\Python311\python.exe
- 3.10-64 C:\Users\you\AppData\Local\Programs\Python\Python310\python.exe
特定バージョンを明示して確認
# 3.11系でバージョン表示
py -3.11 -V
Python 3.11.6
インストール場所を確認(where python, py -0p)
whereコマンドで場所を確認
# PATH検索で見つかるpython.exe
where python
# ランチャーpy自体の場所も参考までに
where py
C:\Users\you\AppData\Local\Programs\Python\Python311\python.exe
C:\Windows\py.exe
複数行が出る場合は、上から順に優先されることが多いです。
Microsoft Storeのエイリアスが混ざるとWindowsApps
配下が表示されることもあります。
Pythonランチャーで場所を確認
前述のpy -0p
は、各バージョンの実体のパスが一度にわかるため、場所確認に最も確実です。
コマンドが見つからない時(PATHの確認)
代表的なエラー表示
python
やpy
が見つからない場合、以下のような表示になります。
'python' is not recognized as an internal or external command,
operable program or batch file.
INFO: Could not find files for the given pattern(s).
解決の流れ
まずpy -V
を試し、だめならpython --version
の順に確認します。
どちらも失敗する場合はPython自体が未インストールか、PATH
に登録されていない可能性があります。
再インストール時にインストーラの冒頭でAdd Python to PATH
にチェックを入れて進めると、最も簡単に解決します。
すでにインストール済みなら、システムの環境変数Path
にC:\Users\あなた\AppData\Local\Programs\Python\Python3x\
と、その直下のScripts\
が含まれているかを確認してください。
さらに、Store版のエイリアスが邪魔をする場合があるため、設定アプリのアプリ実行エイリアス(設定 > アプリ > アプリ実行エイリアス)でpython.exe
とpython3.exe
のトグルをオフにするのも有効です。
MacでPythonのバージョンを確認する
ターミナルで確認(python3 –version)
基本の確認
Macではpython
が旧版やプレースホルダである場合があるため、python3
で確認するのが確実です。
# macOS標準のターミナルやiTerm2で実行
python3 --version
Python 3.11.7
command not found: python3
と出た場合は、Homebrewや公式インストーラからPythonをインストールしてください。
複数バージョンとパスを確認(which -a python3)
どのpython3が使われるか
# PATH上で見つかるpython3を優先順にすべて表示
which -a python3
/opt/homebrew/bin/python3
/usr/bin/python3
先頭に表示されるものが実際に使われます。
シンボリックリンクの先を見たい場合はls -l "$(which python3)"
が参考になります。
HomebrewやpyenvのPythonを確認(brew, pyenv)
Homebrewで入れたPythonの確認
HomebrewではPythonのフォーミュラ名がpython
またはpython@3.x
となることがあります。
次のコマンドでバージョンや設置場所を把握できます。
# インストール済みのPythonの情報
brew info python
# バージョンの一覧(フォーミュラ名は環境によりpython@3.12などになる)
brew list --versions python || brew list --versions python@3.12
# 実体のプレフィックス(インストール先の基点パス)
brew --prefix python || brew --prefix python@3.12
python: stable 3.12.2 (bottled)
...
/opt/homebrew/opt/python@3.12
python@3.12 3.12.2
pyenvで入れたPythonの確認
# インストール済みのバージョン一覧。*印が現在選択中
pyenv versions
# グローバル(デフォルト)に使うバージョン
pyenv global
# いまのシェルで使われるpython実体のパス
pyenv which python
system
3.10.13
* 3.11.6 (set by /Users/you/.pyenv/version)
3.11.6
/Users/you/.pyenv/versions/3.11.6/bin/python
pyenv
を使う場合はeval "$(pyenv init -)"
の初期化をシェルに設定しておくと、期待通りのバージョン切り替えが機能します。
仮想環境やツール別にPythonのバージョンを確認
venv/virtualenvで確認(有効化後に python –version)
仮想環境の作成と有効化
プロジェクトごとに仮想環境を作ると、環境ごとにPythonバージョンが明確になります。
作成後に有効化し、python --version
で確認します。
Windowsの例:
# デフォルトのPythonで仮想環境を作成
py -m venv .venv
# 仮想環境を有効化
.\.venv\Scripts\activate
# 仮想環境内のPythonバージョンと実体の場所を確認
python --version
where python
Python 3.11.6
C:\path\to\project\.venv\Scripts\python.exe
Macの例:
# デフォルトのPython3で仮想環境を作成
python3 -m venv .venv
# 仮想環境を有効化
source .venv/bin/activate
# 仮想環境内のPythonバージョンと実体の場所を確認
python --version
which python
Python 3.11.7
/Users/you/path/to/project/.venv/bin/python
仮想環境を抜けたい場合はdeactivate
を実行します。
Anaconda/condaで確認(conda env list, python –version)
環境一覧と環境内のPython
# condaの環境一覧と現在の環境(*印)
conda env list
# 目的の環境を有効化してからPythonバージョンを確認
conda activate myenv
python --version
# conda environments:
#
base * /Users/you/miniconda3
myenv /Users/you/miniconda3/envs/myenv
Python 3.10.13
環境を有効化したくない場合は、conda run -n myenv python --version
でも確認できます。
VS Codeで確認(インタープリタ選択)
VS Codeの操作手順
VS Codeは選択したインタープリタがワークスペースごとに記録され、そのバージョンがステータスバーに表示されます。
ウィンドウ左下のPythonバージョン表記をクリックするか、コマンドパレット(Ctrl+Shift+PまたはCmd+Shift+P)でPython: Select Interpreter
を実行し、一覧から目的のインタープリタを選びます。
選択後は統合ターミナルを開き、次のように確認します。
python -V
Python 3.11.6
ターミナルのシェルが外部のPATH
を優先しているとずれが出る場合があるため、その場合はコマンドパレットでPython: Create Environment
やPython: Select Interpreter
を再設定し、ステータスバーの表示と一致するかを確認します。
PyCharmで確認(Project Interpreter)
PyCharmの操作手順
PyCharmでは、設定画面のSettings/Preferences > Project: {プロジェクト名} > Python Interpreter
で、現在のプロジェクトに紐づくインタープリタとそのバージョン、実行ファイルの場所が確認できます。
右上のギアアイコンからAdd...
を選べば、新しい仮想環境の作成や、既存インタープリタ(venv、Conda、システムPython、WSL、Dockerなど)の追加も可能です。
選択後、PyCharmのターミナルでpython --version
を実行すれば、設定と実行結果が一致しているか確認できます。
コードからPythonのバージョンを取得する
sys.version と platform.python_version() を使う
それぞれの違い
sys.version
はビルド情報を含む詳細な文字列です。最適化フラグやコンパイラ情報まで含まれることがあります。sys.version_info
は(major, minor, micro, releaselevel, serial)のタプルで、条件分岐に使いやすい形式です。platform.python_version()
は"3.11.6"
のようなシンプルな文字列で、表示用途に向いています。- あわせて
sys.executable
を出力すると、実際に使われているPython実行ファイルのフルパスがわかります。
実行時にprintで表示する例
以下のサンプルコードは、代表的な取得方法と、その差を見比べられるようにコメントを付けています。
ファイル名はshow_python_version.py
などにして保存し、実行してください。
# show_python_version.py
# 目的:
# - Pythonのバージョンを複数の方法で取得・表示する
# - 実行中のPython実体(sys.executable)の場所も併せて確認する
import sys
import platform
def main() -> None:
# 詳細な文字列(コンパイル情報など含む場合あり)
print("[sys.version]")
print(sys.version)
print()
# 機械的に扱いやすいタプル
print("[sys.version_info]")
vi = sys.version_info
print(f"major={vi.major}, minor={vi.minor}, micro={vi.micro}, "
f"releaselevel={vi.releaselevel}, serial={vi.serial}")
print()
# 表示に適したシンプルな形式
print("[platform.python_version()]")
print(platform.python_version())
print()
# 実行ファイルのフルパス(どのPythonで動いているか)
print("[sys.executable]")
print(sys.executable)
print()
# ついでに実装名(CPython, PyPyなど)も
print("[platform.python_implementation()]")
print(platform.python_implementation())
if __name__ == "__main__":
main()
[sys.version]
3.11.6 (main, Dec 7 2023, 10:34:05) [Clang 14.0.3 (clang-1403.0.22.14.1)]
[sys.version_info]
major=3, minor=11, micro=6, releaselevel=final, serial=0
[platform.python_version()]
3.11.6
[sys.executable]
/Users/you/path/to/project/.venv/bin/python
[platform.python_implementation()]
CPython
このように、コード内でバージョンや実行ファイルの場所をログに出しておけば、仮想環境やリモート実行時でも意図と実態の差を素早く発見できます。
まとめ
Pythonのバージョン確認は、Windowsならまずpy -V
、Macならpython3 --version
が最短です。
複数バージョン共存時は、Windowsではpy -0
やpy -0p
で一覧と実体パスを、Macではwhich -a python3
で優先順と所在を把握できます。
仮想環境を有効化してからpython --version
を実行すれば、プロジェクト単位のバージョンが明確です。
IDEの設定画面(VS Codeのインタープリタ選択、PyCharmのProject Interpreter)と、実際のターミナル出力が一致しているかを常に確認するとトラブルを避けられます。
最後に、sys.version_info
やplatform.python_version()
をコードに組み込むと、環境差異の切り分けが格段に楽になります。
バージョンの見える化を習慣にし、安心して開発を進めていきましょう。