Python versionの確認・管理・切り替え完全ガイド【2025年最新】

この記事では、LinuxやWindowsでのPythonバージョン確認方法やHeroku・CircleCIでの対応状況、Sphinxのサポート方針までを解説し、開発環境でのPython管理の悩みを解決できます。

Pythonのバージョンを確認する方法

python+version+management

Linuxでのバージョン確認方法

ターミナルを使った確認

Linux環境では、ターミナルから直接コマンドを実行することで簡単にPythonのバージョンを確認できます。特に開発環境が複数台ある場合や、システムにインストールされているPythonのバージョンを即座に把握したいときに便利です。

以下のコマンドを入力することで、現在利用可能なPythonバージョンを確認できます。

python --version
python3 --version

多くのLinuxディストリビューションでは、pythonコマンドがPython 2を指し、python3コマンドがPython 3を指しているケースが一般的です。

Pythonインタープリタを使った確認

ターミナルで直接Pythonインタープリタを起動し、バージョン情報を参照する方法もあります。以下の手順で確認可能です。

python

インタプリタが起動すると、最初の行にバージョン情報が表示されます。また、プログラム内で確認したい場合は、次のコードを入力してください。

>>> import sys
>>> print(sys.version)

この方法を使うと、より詳細なバージョン情報やビルドナンバーまで確認することができます。

Python 2とPython 3の両方を確認する方法

システムにPython 2とPython 3の両方がインストールされている環境では、明示的にそれぞれのバージョンを確認する必要があります。次のようにコマンドを実行してください。

python2 --version
python3 --version

特に開発環境によっては依存するPythonのバージョンが決まっている場合があるため、どちらの環境でも適切にバージョンを切り替えて利用することが重要です。開発効率を高めるためには、事前にPythonのバージョン管理ツールを活用するのも有効ですが、まずはこの確認方法で環境の状態を把握するのがおすすめです。

Pythonのバージョン管理とサポートポリシー

python+version+management

サポートされているPythonバージョン

Pythonはオープンソースのプログラミング言語であり、開発を担うPython Software Foundation (PSF)によって公式にサポートされるバージョンが定められています。通常、最新の安定版リリース(例: Python 3.x系)が積極的にサポートされ、セキュリティ修正やバグ修正が提供されます。一方で、古いバージョンは一定期間を過ぎるとサポートが終了し、セキュリティアップデートも提供されなくなります。

公式サイトの「Python Versions」では、現在利用可能なバージョンとそのサポート期限を確認することができます。特に業務システムやWebサービスでPythonを使用する場合、サポート終了(EOL: End Of Life)されたバージョンの利用はセキュリティリスクが高まるため避ける必要があります。

  • 最新の安定版:新機能と改善が利用可能
  • サポート中の過去バージョン:バグ修正とセキュリティパッチが適用
  • EOLバージョン:一切の修正が提供されないため利用は非推奨

バージョンサポートの方針

Pythonでは原則として「新バージョンは約18カ月ごとにリリース」され、それぞれのバージョンは約5年間サポートされる方針が取られています。この期間には通常のバグ修正期、セキュリティ修正のみのメンテナンス期が含まれ、ライフサイクル終了後は新しいリリースへ移行することが求められます。

また、企業や開発者が長期間システムを安定運用できるように、LTS(Long Term Support)に近い扱いをされるバージョンも存在しています。たとえばPython 3.8や3.10といったリリースは、多くのLinuxディストリビューションで標準採用されており、現場での利用が広く行われています。

安定性と互換性を重視するなら、サポート終了間近のバージョンではなく、積極的にメンテナンスされているPython versionを採用することが推奨されます。

非推奨機能とその取り扱い

Pythonでは、新バージョンの開発の過程で既存機能が「非推奨(Deprecated)」とされることがあります。これは、互換性維持のためしばらくは利用可能であるものの、将来的に削除される予定がある機能です。開発者が移行準備を行えるよう、公式ドキュメントには非推奨機能の一覧や対応方法が明示されています。

非推奨機能を放置すると、新しいPython version へのアップグレード時にコードが動作しなくなるリスクがあるため、以下のような対策が有効です:

  1. リリースノートを確認し、非推奨機能の有無をチェックする
  2. 警告(DeprecationWarning)を有効化して、影響範囲を把握する
  3. 推奨される代替APIや標準ライブラリへコードを移行する

特に長期運用されるシステムでは、定期的にコードをレビューし非推奨機能を排除していくことが、スムーズなバージョン移行やセキュリティ維持のために不可欠です。

Pythonのバージョン指定と切り替え方法

python+version+environment

仮想環境でバージョンを指定する

プロジェクトごとに異なる Python version を使いたい場合、仮想環境を活用するのが一般的です。仮想環境を設定することで、システム全体に影響を与えずに特定のバージョンを選択できます。特に、開発環境と本番環境で異なるバージョンを使う場合や、依存関係の衝突を避けたい場合に有効です。

  • venv: 標準ライブラリを使い、任意のPythonバージョンで仮想環境を作成可能。
  • virtualenv: venv より柔軟で、異なるPythonインタープリタを簡単に選べる。
  • pyenv + pyenv-virtualenv: 複数バージョンを切り替えたい場合に便利。
# 例: Python 3.9 を指定して仮想環境を作成
$ python3.9 -m venv myenv
$ source myenv/bin/activate

上記のようにコマンドを実行することで、仮想環境がアクティブになり、その環境下では指定したバージョンのPythonが利用されます。

プロジェクトでPythonバージョンを固定する

複数人で開発を行う場合や継続的にメンテナンスが必要なプロジェクトでは、使用する Python version を明確に固定しておくことが重要です。バージョンの違いによる動作不良を未然に防ぐことができます。

主な方法として以下のようなものがあります。

  • requirements.txt と合わせて runtime.txt を用意し、バージョンを明記する。
  • .python-version ファイルを作成し、pyenv や Poetry に認識させる。
  • Dockerfile にPythonのバージョンを定義し、環境を固定する。
# .python-version の例
3.10.12

こうした設定をチームで共有することで、一貫性のある開発環境を保つことができます。

CI/CD環境でのPythonバージョン指定

CI/CDパイプラインにおいて明示的に Python version を指定することは、ビルドやテストの安定性を確保するために欠かせません。サービスごとに記法は異なりますが、ほとんどのCI/CDツールはバージョン指定をサポートしています。

  • GitHub Actions: setup-python アクションでバージョンを指定可能。
  • GitLab CI: 使用するDockerイメージにPythonのバージョンを含める。
  • Azure Pipelines: UsePythonVersion タスクでインストールバージョンを管理。
# GitHub Actions の例
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/setup-python@v4
        with:
          python-version: '3.10'

このようにCI/CD環境にバージョンを固定することで、本番環境と同じ条件でテストを実行でき、デプロイ後の不具合を軽減できます。

クラウドサービスやツールでのPythonバージョン対応

python+version+deployment

HerokuにおけるPythonバージョン指定

Herokuを利用してPythonアプリケーションをデプロイする際には、使用するPythonのバージョンを明示的に指定することができます。これは、アプリケーションの依存関係や開発環境と本番環境で動作を一致させる上で非常に重要です。もしバージョンを指定しない場合、Herokuのデフォルト環境で設定されたバージョンが自動的に利用されるため、思わぬ挙動の違いが発生する可能性があります。

Pythonのバージョンは、プロジェクトルートに配置するruntime.txtファイルで定義します。例えば、3.10系を利用する場合には以下のように記述します。

python-3.10.12

この指定によりHerokuはアプリケーションのビルド時に該当するPythonバージョンを利用します。サポートされているPythonバージョンの一覧は公式ドキュメントに更新され続けているため、最新のバージョン指定方法を確認することが推奨されます。

  • アプリと依存ライブラリが互換性を持つPythonバージョンを選択する
  • 長期的なサポートが見込まれる安定バージョンを優先して利用する
  • サポート切れの旧バージョンは利用を避けるべき

このようにHerokuにおけるPythonバージョン指定は、デプロイ後の安定した稼働を実現するための基本的なステップです。

CircleCIのPythonイメージとタグの使い方

CircleCIを活用して継続的インテグレーションを行う際には、公式Dockerイメージを活用してPythonバージョンを柔軟に指定できます。これにより、テストやデプロイのパイプラインにおいてローカル開発環境と同一の実行環境を再現できます。

Dockerイメージにはcircleci/python:3.10のようにタグを利用できます。タグの設定により必要なバージョンや追加機能を調整できます。

タグ例 意味
circleci/python:3.10 Python 3.10の標準コンテナ
circleci/python:3.10-node Node.jsを同梱したPython 3.10環境
circleci/python:3.11-browsers ブラウザテスト用にブラウザツールを追加した環境

このようにタグのバリエーションを把握しておくことで、テストの種類やプロジェクトの特性に応じて最適なPythonバージョンのイメージを利用することが可能です。

OpenAPI GeneratorとPythonの互換性

API開発で広く利用されているOpenAPI Generatorは、API定義ファイルからPythonクライアントやサーバーコードを自動生成できます。この際に利用されるPythonバージョンとの互換性は、生成されたコードの実行可否に直結する重要なポイントです。

特に、AsyncIOを利用した非同期APIクライアントや新しいタイプヒントの構文など、一部の機能はPython 3.7以降でのみ適切に動作します。そのため、プロジェクトで生成されたコードが依存するPythonの最低バージョン要件を公式のリリースノートやドキュメントで確認することが推奨されます。

  • Python 3.6以前では一部の生成コードが動作しない場合がある
  • 生成時に利用するバージョンを明示しておくことで将来的な互換性を確保できる
  • 最新のOpenAPI Generatorは最新のPythonバージョンに素早く対応する傾向がある

OpenAPI Generatorを使った開発では、Pythonバージョンの互換性を意識して計画し、CI/CDパイプラインやクラウド環境で利用するバージョンと統一して管理することが重要です。

よくある質問(FAQ)

python+version+management

pythonコマンドが認識されないときの解決法

Pythonをインストールしたはずなのに、ターミナルやコマンドプロンプトでpythonコマンドが認識されない場合があります。このトラブルは、主にパス(環境変数)の設定やインストール方法に起因することが多いです。以下の方法を確認することで、正しくコマンドが認識されるようになります。

  • PATH環境変数を確認する

    Pythonの実行ファイルがあるディレクトリが環境変数PATHに含まれていない場合、pythonコマンドが有効になりません。特にWindowsでは、インストール時に「Add Python to PATH」のチェックを入れ忘れるとエラーが発生します。環境変数の設定画面からPythonのインストール先フォルダを追加してください。

  • pythonではなくpython3コマンドを使用する

    LinuxやmacOSでは、pythonコマンドがPython 2系を指していることがあります。Python 3を利用したい場合は、python3と入力することで解決できるケースが多いです。

  • インストール状況を再確認する

    Python自体がインストールされていない、または破損している場合があります。一度アンインストールし、公式サイトの最新版(Python公式ダウンロードページ)から再インストールするのも有効な方法です。

これらを試しても問題が解決しない場合は、使用しているOSごとの特性による可能性があるため、それぞれの環境に合わせた設定を確認することが重要です。

複数バージョンを効率的に管理する方法

開発プロジェクトによっては、複数のPythonバージョンを切り替えながら利用する必要があります。その際、手動でインストールやアンインストールを繰り返すのは効率的ではありません。専用ツールを利用すると、複数のバージョンを簡単に管理できます。

  • pyenvを利用する

    LinuxやmacOSでは、pyenvを利用することで複数のPythonバージョンを簡単に切り替えることができます。pyenv installコマンドで必要なバージョンをインストールし、pyenv globalpyenv localでプロジェクト単位に指定可能です。

  • Windowsではpyenv-winやAnacondaを活用

    Windows環境でバージョンを管理したい場合は、pyenv-winが有効です。また、データサイエンス向けの開発ではAnacondaを導入することで複数のPython環境を簡単に構築・切り替えできます。

  • Dockerを利用する

    環境に依存しない形でPythonのバージョンを管理したい場合、Dockerコンテナを使う方法も便利です。公式のPythonイメージにはバージョンごとのタグが用意されているため、必要なPythonバージョンを明示的に指定して利用できます。

効率的にバージョン管理を行うことで、異なるプロジェクト間での依存関係のトラブルを回避し、安定した開発環境を維持できます。

最新バージョンへのアップデート手順

Pythonは定期的にアップデートされており、新機能の追加やセキュリティ修正が含まれるため、適切なタイミングで最新バージョンへ更新することが推奨されます。以下に主要なOS別の更新手順をまとめます。

  1. Windowsの場合

    公式サイト(Python.org)から最新のインストーラをダウンロードして実行します。以前のバージョンがインストールされていても、上書きインストールまたは並行インストールが可能です。

  2. Linuxの場合

    ディストリビューションによって手順が異なります。Ubuntuでは以下のようにaptを用いるのが一般的です。

    sudo apt update
    sudo apt upgrade python3
    

    ただしリポジトリに最新バージョンが含まれていない場合は、deadsnakesリポジトリを追加する方法があります。

  3. macOSの場合

    Homebrewを導入している場合は、ターミナルで以下を実行するだけで最新版に更新できます。

    brew update
    brew upgrade python
    

アップデート後は、必ずpython --versionまたはpython3 --versionを実行して、正しく最新バージョンが反映されているか確認してください。
また、既存プロジェクトとの互換性を考慮し、必要に応じて仮想環境を活用することをおすすめします。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です