閉じる

Pythonバージョン確認コマンド一覧:sys.versionからcondaまで網羅

Pythonを使っていると「今どのPythonで動いているのか」「仮想環境ごとにバージョンが合っているか」を正確に把握することがとても重要になります。

本記事では、Python本体のバージョン確認コマンドを体系的に整理し、標準のpythonコマンドからconda環境、OS別の確認方法まで、実務で迷わないレベルで詳しく解説します。

Pythonバージョン確認の基本コマンド一覧

まずは、どの環境でもほぼ共通して利用できる、Pythonバージョン確認の基本的な方法を整理します。

ここを押さえておくと、後で出てくる仮想環境やconda環境の話も理解しやすくなります。

python –versionとpython -Vの違いと使い分け

最もよく使われるのがpython --versionpython -Vです。

どちらも基本的には同じ結果を返しますが、使い分けや注意点を整理しておきます。

コマンドの書式と動作

基本形は次の2つです。

Shell
python --version
python -V

典型的な実行結果は次のようになります。

Python 3.11.7

どちらのコマンドも、インストールされている実行中のpythonコマンドのメジャー・マイナーバージョンとパッチバージョンを表示します。

python –versionとpython -Vの違い

実務的にはほぼ同じですが、細かい違いとして次の点があります。

  • --versionロングオプション-Vショートオプションです。
  • OSやディストリビューションによって、stderrに出力されるかstdoutに出力されるかが異なるバージョンがあります。
    • スクリプトの中で出力をパースする場合、どちらのストリームに出るかを意識する必要があります。

表にまとめると次のようになります。

項目python –versionpython -V
オプション種別ロングオプションショートオプション
表示内容Pythonのバージョン同じ
出力先バージョンやビルドによってstdout/stderrが混在同様
人間が手で打つとき読みやすい少し短く書ける
スクリプト内可読性重視なら–version省スペース重視なら-V

python3, pyコマンドとの関係

環境によってはpython3py(Windows)を使う必要があります。

例えば、次のように実行すると、それぞれのコマンドに対応したPythonのバージョンを確認できます。

Shell
python3 --version
py --version

どのコマンドが自分の環境のデフォルトなのかは、後述するOS別の節で詳しく説明します。

対話モードでのimport sysによるバージョン確認

スクリプトやREPL(対話モード)の中で、実際にいま動いているPythonのバージョンを知りたい場面も多くあります。

そこで活躍するのがsysモジュールです。

対話モードでの基本的な確認

Python対話モードを起動して、次のように入力します。

Shell
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は文字列として、次のような情報を含みます。

Python
>>> 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は、タプル風のオブジェクトとして、バージョンの各要素を扱いやすい形で提供します。

Python
>>> 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以上かどうか」を判定するコード例を示します。

Python
# 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} です。"
    )

想定される実行例を示します。

Shell
python version_check.py
実行結果
OK: Python 3.11 以上です。

このように比較演算子でタプル同士を比較することで、シンプルかつ安全にバージョン条件を記述できます。

仮想環境ごとのPythonバージョン確認

次に、仮想環境(venvやvirtualenvなど)ごとにPythonバージョンを把握する方法について解説します。

同じマシンでも、環境ごとにPythonのバージョンが異なることは珍しくありません。

venv環境でのpythonバージョン確認方法

標準ライブラリのvenvを使って仮想環境を作成した場合、その環境を有効化した上でバージョン確認を行うのが基本です。

venv仮想環境の作成と有効化

まずは仮想環境自体の復習も兼ねて、一連の流れを示します。

Shell
# プロジェクトディレクトリに移動
cd myproject

# venvという名前で仮想環境を作成
python -m venv venv

次に、環境を有効化します。

    BashmacOS / Linux
    source venv/bin/activate
    ShellWindows(cmd)
    venv\Scripts\activate
    PowerShellWindows(PowerShell)
    .\venv\Scripts\Activate.ps1

    プロンプトの先頭に(venv)のような表示が付けば、有効化に成功しています。

    有効化後のpythonバージョン確認

    有効化された状態で、次のように確認します。

    Shell
    (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条件を持つ場合、そこから推測できます。

    Shell
    pip list
    実行結果
    Package    Version
    ---------- -------
    pip        24.0
    setuptools 69.0.0
    ...

    これだけではバージョンはわかりませんが、次のpip showが役に立ちます。

    pip showからの推測例

    pip showで、あるパッケージのメタデータを確認します。

    Shell
    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では、次のように実行します。

    Shell
    which python
    実行結果
    /home/user/myproject/venv/bin/python

    このように表示されていれば、現在は仮想環境内(venv/bin/python)のPythonが実行されていることがわかります。

    仮想環境を無効化して再度実行すると、次のようにパスが変わる場合があります。

    Shell
    which python
    実行結果
    /usr/bin/python

    このパスの違いが、そのまま「どのPythonが呼ばれているか」を示しています。

    Windowsでのwhere

    Windowsではwhereコマンドを使います。

    Batch File
    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 listconda infoを用いると、Python関連の詳細な情報が得られます。

    conda listでPythonパッケージを見る

    対象の環境を有効化してからconda listを実行します。

    Shell
    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バージョンを含む要約情報が得られます。

    Shell
    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の出力例

    Shell
    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バージョンを対応付けてメモすることができます。

    Shell
    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バージョンを指定する方法です。

    Shell
    # Python 3.8環境を作成
    conda create -n py38 python=3.8
    
    # Python 3.11環境を作成
    conda create -n py311 python=3.11

    作成後、それぞれの環境を有効化してpython --versionで確認します。

    Shell
    conda activate py38
    python --version
    # -> Python 3.8.x
    Shell
    conda activate py311
    python --version
    # -> Python 3.11.x

    既存環境のPythonバージョン変更

    どうしても既存環境でPythonのバージョンを上げ下げしたい場合は、次のように指定します。

    Shell
    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)では、まず次のように実行します。

    Batch File
    python --version
    実行結果
    Python 3.11.7

    もし'python' は、内部コマンドまたは外部コマンド...として認識されていませんと出る場合は、PATHが通っていないか、Pythonがインストールされていない可能性があります。

    pyランチャーでの確認

    Windowsの多くの環境では、pyコマンド(Windows用Pythonランチャー)も利用できます。

    Batch File
    py --version
    実行結果
    Python 3.11.7

    複数バージョンがインストールされている場合、py -0で一覧を確認できます。

    Batch File
    py -0
    実行結果
    Installed Pythons found by py Launcher for Windows
     -3.11-64 *
     -3.10-64
     -3.9-64

    アスタリスク*の付いたものがデフォルトで起動されるPythonです。

    特定バージョンを明示したいときは、次のように指定します。

    Batch File
    py -3.10 --version

    macOSでのpython3・brew経由インストールのバージョン確認

    macOSでは、OS組み込みのPythonと、ユーザーがインストールしたPythonが混在しがちです。

    特にbrew経由でインストールした場合は、実行ファイルの場所やコマンド名が変わります。

    python3コマンドでの確認

    最新のmacOSでは、pythonよりもpython3が標準です。

    Shell
    python3 --version
    実行結果
    Python 3.11.7

    もしpythonも存在する場合は、それが古いPython2.xである可能性があるため、macOSではpython3を使うのが基本方針です。

    Homebrew経由インストールの場合

    HomebrewでPythonをインストールした場合、どのバージョンが入っているかはbrewコマンドで確認できます。

    Shell
    brew list python
    実行結果
    /opt/homebrew/Cellar/python@3.11/3.11.7/bin/python3
    ...

    また、実際にどのpython3が使われているかはwhichで確認します。

    Shell
    which python3
    実行結果
    /opt/homebrew/bin/python3

    このパスが/usr/bin/python3でないことを確認できれば、「Homebrew版のPythonが使われている」と判断できます。

    Linuxでのwhich pythonとupdate-alternativesの確認方法

    Linuxでは、ディストリビューションによってPythonの扱いが異なりますが、共通してwhichupdate-alternativesを用いた確認が有効です。

    which python / which python3 での確認

    まずは、どのPythonが使われているかを把握します。

    Shell
    which python
    which python3
    実行結果
    /usr/bin/python
    /usr/bin/python3

    環境によってはpythonが存在せず、python3のみが有効な場合もあります。

    その場合はpython3 --versionを使います。

    Shell
    python3 --version
    実行結果
    Python 3.11.7

    update-alternativesの設定確認(Debian/Ubuntu系)

    Debian系ディストリビューションでは、update-alternativespythonpython3の実体を切り替えている場合があります。

    Shell
    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 --versionpython3 --versionで事足りますが、複数環境が入り混じる実務では、which/whereで実行ファイルの場所を確認し、condaやvenvの有効化状態を意識することが重要になります。

    特に、コード内での条件分岐にはsys.version_infoを使うことで、確実かつ読みやすいバージョンチェックが可能です。

    ここで紹介したコマンド群を組み合わせて、自分の開発環境を常に正しく把握できるようにしておきましょう。

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

    URLをコピーしました!