読み込み中...

Pythonにおけるpipバージョンの確認方法について

pipバージョンの確認 徹底解説 Python
この記事は約17分で読めます。

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

本記事のサンプルコードを活用して機能追加、目的を達成できるように作ってありますので、是非ご活用ください。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を満たす現役のプログラマチームによって監修されています。

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

●Pythonのpipとは?

pipは”Pip Installs Packages”の略称で、Pythonの公式パッケージ管理ツールとして広く認知されています。

初心者からベテランまで、多くのPythonユーザーが日々の開発作業でpipを利用しています。

○pipの役割と重要性

pipの主な役割は、Pythonパッケージのインストール、アップグレード、削除を簡単に行えるようにすることです。

外部ライブラリを使用したいとき、pipを使えば数行のコマンドで簡単に導入できます。

例えば、データ分析で人気の高いパンダスライブラリをインストールしたい場合、次のようなコマンドを実行するだけです。

pip install pandas

このように、pipを使うことで複雑な依存関係の解決やバージョン管理を自動的に行ってくれます。

開発者は面倒な設定作業から解放され、本質的なコーディング作業に集中できるわけです。

○pipを使う前に知っておくべきこと

pipを効果的に活用するには、いくつかの基本的な知識が必要です。

まず、pipはPythonのバージョンによって若干の違いがあります。

Python 2.7.9以降やPython 3.4以降では、pipが標準でインストールされています。

また、pipを使用する際は、適切な権限を持っていることを確認しましょう。

システム全体にパッケージをインストールする場合、管理者権限が必要になることがあります。

さらに、仮想環境の使用をお勧めします。

仮想環境を使うと、プロジェクトごとに独立したPython環境を作成でき、パッケージの衝突を防ぐことができます。

●pipバージョンを確認する3つの方法

pipを使いこなすには、まず自分の環境にインストールされているpipのバージョンを正確に把握することが大切です。

ここでは、3つの方法を紹介します。

○サンプルコード1:コマンドラインで確認

最も一般的な方法は、コマンドラインを使用することです。

ターミナルやコマンドプロンプトを開き、次のコマンドを入力します。

pip --version

このコマンドを実行すると、次のような出力が表示されます。

pip 21.1.3 from /usr/local/lib/python3.9/site-packages/pip (python 3.9)

この出力から、pipのバージョン、インストールされている場所、使用しているPythonのバージョンがわかります。

○サンプルコード2:Pythonスクリプトで確認

Pythonスクリプトを使用してpipのバージョンを確認することも可能です。

次のようなスクリプトを作成し、実行してみましょう。

import pip
print(pip.__version__)

このスクリプトを実行すると、pipのバージョンが表示されます。

例えば、次のような出力が得られます。

21.1.3

○サンプルコード3:pipモジュールを使用した確認

pipモジュールを直接使用して、より詳細な情報を取得することもできます。

次のPythonスクリプトを試してみましょう。

from pip._internal.utils.misc import get_installed_distributions

for dist in get_installed_distributions():
    if dist.key == 'pip':
        print(f"pip version: {dist.version}")
        print(f"Location: {dist.location}")
        print(f"Requires: {', '.join(dist.requires())}")

このスクリプトを実行すると、pipのバージョン、インストール場所、依存関係などの詳細情報が表示されます。

出力例は次のようになります。

pip version: 21.1.3
Location: /usr/local/lib/python3.9/site-packages
Requires: wheel, setuptools

以上の3つの方法を使えば、pipのバージョンを簡単に確認できます。

●pipバージョン確認時の注意点

pipのバージョン確認は一見単純な作業に思えますが、実際には注意点が何点かあります。

開発環境の複雑さやプロジェクトの要件によって、正確なバージョン確認が困難になることもあるでしょう。

ここでは、pipバージョンを確認する際に気をつけるべきポイントについて詳しく説明します。

○異なるPython環境での確認方法

Pythonには複数のバージョンが存在し、システムによっては同時に複数のバージョンがインストールされていることもあります。

各Pythonバージョンには、それぞれ独自のpipがあるため、確認する際は注意が必要です。

例えば、Python 2系とPython 3系が共存している環境では、単に「pip」コマンドを実行しただけでは、どちらのPython環境のpipを参照しているのか判断できません。

正確に確認するには、Pythonバージョンを明示的に指定する必要があります。

Python 3の場合、次のようなコマンドを使用します。

python3 -m pip --version

一方、Python 2の場合は次のようになります。

python2 -m pip --version

コマンドの実行結果は、使用しているPythonのバージョンによって異なります。

例えば、Python 3.9を使用している場合、次のような出力が得られるでしょう。

pip 21.1.3 from /usr/local/lib/python3.9/site-packages/pip (python 3.9)

○仮想環境でのpipバージョン確認

プロジェクト管理の観点から、仮想環境の使用が推奨されています。

仮想環境を使うと、プロジェクトごとに独立したPython環境を作成でき、パッケージの衝突を防ぐことができます。

しかし、仮想環境内でのpipバージョン確認には、いくつかの注意点があります。

まず、仮想環境を有効化する必要があります。

仮想環境の有効化方法は、使用している仮想環境ツールによって異なります。

例えば、venvを使用している場合、Linuxやmacでは次のコマンドで有効化します。

source myenv/bin/activate

Windowsの場合は、次のようになります。

myenv\Scripts\activate

仮想環境を有効化したら、通常のpipバージョン確認コマンドを実行できます。

pip --version

仮想環境内でのコマンド実行結果は、グローバル環境とは異なる場合があります。

例えば、次のような出力が得られるかもしれません。

pip 20.2.3 from /path/to/your/virtual/environment/lib/python3.8/site-packages/pip (python 3.8)

仮想環境を使用する際は、常に正しい環境で作業していることを確認しましょう。

環境の切り替えを忘れると、予期せぬエラーや問題が発生する可能性があります。

●pipのアップグレード方法

pipを最新の状態に保つことは、セキュリティや機能面で重要です。

古いバージョンのpipを使用していると、新しいパッケージのインストールや既存パッケージの更新時に問題が発生する可能性があります。

ここでは、pipを最新バージョンにアップグレードする方法と、特定のバージョンにダウングレードする方法を説明します。

○サンプルコード4:最新バージョンへのアップグレード

pipを最新バージョンにアップグレードするには、pipコマンド自体を使用します。

次のコマンドを実行してみましょう。

pip install --upgrade pip

このコマンドを実行すると、pipは自身を最新バージョンにアップグレードします。

アップグレードが完了すると、次のような出力が表示されます。

Collecting pip
  Downloading pip-21.1.3-py3-none-any.whl (1.5 MB)
     |████████████████████████████████| 1.5 MB 1.2 MB/s 
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 20.2.3
    Uninstalling pip-20.2.3:
      Successfully uninstalled pip-20.2.3
Successfully installed pip-21.1.3

アップグレード後は、必ずバージョンを確認して、正しくアップグレードされたことを確認しましょう。

pip --version

出力結果が更新されていれば、アップグレードは成功です。

○サンプルコード5:特定バージョンへのダウングレード

場合によっては、特定のバージョンのpipが必要になることもあります。

例えば、古いプロジェクトの互換性を維持するためなどです。

pipを特定のバージョンにダウングレードするには、バージョン番号を指定してインストールします。

pip install pip==20.2.3

このコマンドは、pipをバージョン20.2.3にダウングレードします。

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

Collecting pip==20.2.3
  Downloading pip-20.2.3-py2.py3-none-any.whl (1.5 MB)
     |████████████████████████████████| 1.5 MB 1.2 MB/s 
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 21.1.3
    Uninstalling pip-21.1.3:
      Successfully uninstalled pip-21.1.3
Successfully installed pip-20.2.3

ダウングレード後も、必ずバージョンを確認しましょう。

pip --version

出力結果が指定したバージョンになっていれば、ダウングレードは成功です。

●よくあるエラーと対処法

Pythonの開発環境を整える際、pipに関連するエラーに遭遇することがあります。

初心者エンジニアにとって、エラーメッセージは時として不可解で困惑するかもしれません。

しかし、落ち着いて対処法を学べば、多くの問題は簡単に解決できます。

ここでは、頻繁に発生するpip関連のエラーとその対処法について詳しく説明します。

○「pip not found」エラーの解決策

「pip not found」エラーは、システムがpipコマンドを認識できない場合に発生します。

考えられる原因としては、pipが正しくインストールされていない、またはシステムのPATH設定が適切でない場合が挙げられます。

□解決策1:Pythonの再インストール

最新版のPythonをダウンロードし、インストールし直すことで問題が解決する場合があります。

インストール時に「Add Python to PATH」オプションを必ずチェックしましょう。

□解決策2:PATHの確認と設定

コマンドプロンプトやターミナルで次のコマンドを実行し、Pythonのインストール場所を確認します。

python -c "import sys; print(sys.executable)"

出力されたパスをシステムのPATH環境変数に追加します。

例えば、出力が「C:\Python39\python.exe」だった場合、「C:\Python39」と「C:\Python39\Scripts」をPATHに追加します。

□解決策3:pipの手動インストール

公式のget-pip.pyスクリプトを使用して、pipを手動でインストールする方法もあります。

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py

○バージョン不一致による問題の対処

パッケージのバージョン不一致は、依存関係の競合を引き起こし、予期せぬエラーの原因となることがあります。

□解決策1:仮想環境の使用

プロジェクトごとに独立した環境を作成することで、バージョン不一致を防ぐことができます。

python -m venv myproject_env
source myproject_env/bin/activate  # Linuxの場合
myproject_env\Scripts\activate.bat  # Windowsの場合

□解決策2:依存関係の明確化

requirements.txtファイルを使用して、プロジェクトの依存関係を明確に定義します。

pip freeze > requirements.txt

新しい環境で依存関係をインストールする際は、次のコマンドを使用します。

pip install -r requirements.txt

○権限エラーの解決方法

pipコマンドを実行する際、権限不足によるエラーが発生することがあります。

特にシステムワイドなインストールを行う場合に発生しやすい問題です。

□解決策1:ユーザーインストールの使用

「–user」オプションを使用することで、権限エラーを回避できる場合があります。

pip install --user パッケージ名

□解決策2:管理者権限での実行

Windowsの場合、コマンドプロンプトを管理者権限で実行します。

Linuxやmacでは、sudoコマンドを使用します。

sudo pip install パッケージ名

ただし、セキュリティ上の理由から、可能な限り管理者権限の使用は避けるべきです。

●pipバージョン管理のベストプラクティス

効率的なPython開発には、適切なpipバージョン管理が欠かせません。

ここでは、プロジェクト管理を円滑に進めるためのベストプラクティスを紹介します。

○プロジェクトごとの要件ファイル作成

プロジェクトの依存関係を明確に定義することは、再現性の高い開発環境を構築する上で非常に重要です。

requirements.txtファイルを使用することで、プロジェクトで使用しているパッケージとそのバージョンを簡単に管理できます。

要件ファイルの作成手順

  1. プロジェクトの仮想環境を有効化します。
  2. 必要なパッケージをインストールします。
  3. 次のコマンドを実行して、requirements.txtファイルを生成します。
pip freeze > requirements.txt
  1. requirements.txtファイルをバージョン管理システム(例:Git)に追加します。

○サンプルコード6:requirements.txtの使用方法

requirements.txtファイルを使用して依存関係をインストールする方法を説明します。

まず、典型的なrequirements.txtファイルの内容を見てみましょう。

numpy==1.21.0
pandas==1.3.0
matplotlib==3.4.2

このファイルには、プロジェクトで使用するパッケージ名とそのバージョンが記載されています。

「==」記号は、指定されたバージョンと完全に一致するパッケージをインストールすることを意味します。

requirements.txtファイルを使用してパッケージをインストールするには、次のコマンドを使用します。

pip install -r requirements.txt

このコマンドを実行すると、pipはrequirements.txtファイルに記載されたすべてのパッケージを指定されたバージョンでインストールします。

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

Collecting numpy==1.21.0
  Downloading numpy-1.21.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (15.7 MB)
     |████████████████████████████████| 15.7 MB 6.8 MB/s 
Collecting pandas==1.3.0
  Downloading pandas-1.3.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl (10.3 MB)
     |████████████████████████████████| 10.3 MB 43.5 MB/s 
Collecting matplotlib==3.4.2
  Downloading matplotlib-3.4.2-cp39-cp39-manylinux1_x86_64.whl (10.3 MB)
     |████████████████████████████████| 10.3 MB 43.9 MB/s 
Installing collected packages: numpy, pandas, matplotlib
Successfully installed matplotlib-3.4.2 numpy-1.21.0 pandas-1.3.0

requirements.txtファイルを使用することで、チーム全体で同じバージョンのパッケージを使用でき、「自分の環境では動くのに、他の人の環境では動かない」という問題を防ぐことができます。

また、新しいメンバーがプロジェクトに参加する際も、簡単に開発環境を構築できるため、チームの生産性向上にもつながります。

●pipの裏技と応用

pipの基本的な使い方を押さえたら、より高度なテクニックを学ぶ時です。

開発効率を上げ、複雑なプロジェクト管理を可能にする裏技や応用方法を紹介します。

初心者の方も、ゆっくりと理解を深めていきましょう。

○サンプルコード7:複数バージョンのpip管理

プロジェクトによって異なるバージョンのPythonやpipを使用したい場合があります。

pyenvを使用すると、複数のPythonバージョンを簡単に管理できます。

まず、pyenvをインストールします。

macOSの場合、Homebrewを使用してインストールできます。

brew update
brew install pyenv

pyenvをインストールしたら、.bashrcや.zshrcに次の行を追加します。

export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

シェルを再起動して、pyenvを使用可能にします。

次に、Pythonの特定バージョンをインストールします。

pyenv install 3.7.10
pyenv install 3.9.5

プロジェクトごとにPythonバージョンを設定できます。

cd /path/to/your/project
pyenv local 3.7.10

コマンドを実行すると、プロジェクトディレクトリに.python-versionファイルが作成されます。

複数のPythonバージョンを管理することで、異なるバージョンのpipも同時に管理できます。各Pythonバージョンには独自のpipが付属しています。

○サンプルコード8:カスタムインデックスの使用

通常、pipはPyPIからパッケージをインストールします。

しかし、社内専用パッケージや、まだPyPIに公開されていないパッケージを使用したい場合もあるでしょう。

そんな時はカスタムインデックスを使用します。

カスタムインデックスを指定してパッケージをインストールするには、-iオプションを使用します。

pip install -i https://test.pypi.org/simple/ your-package

このコマンドは、Test PyPIからパッケージをインストールします。

Test PyPIは、開発者がパッケージをPyPIに公開する前にテストするための環境です。

複数のインデックスを指定することも可能です。

pip install -i https://test.pypi.org/simple/ -i https://pypi.org/simple your-package

この場合、pipは最初にTest PyPIを確認し、パッケージが見つからなければ公式のPyPIを確認します。

カスタムインデックスを恒久的に設定したい場合は、pipの設定ファイルを使用します。

ユーザーのホームディレクトリに~/.pip/pip.confファイル(Windowsの場合は%APPDATA%\pip\pip.ini)を作成し、次の内容を追加します。

[global]
index-url = https://test.pypi.org/simple/
extra-index-url = https://pypi.org/simple

この設定により、pipは常にTest PyPIを優先的に使用し、見つからない場合は公式PyPIを使用します。

まとめ

pipの裏技と応用を学ぶことで、Python開発環境をより柔軟に、効率的に管理できるようになります。

複数バージョンのPython管理やカスタムインデックスの使用は、大規模プロジェクトや特殊な開発環境で特に威力を発揮します。

今回学んだテクニックを実践し、より効率的なPython開発環境の構築を目指してください。

常に新しい情報をキャッチアップし、自身の開発スキルを磨き続けることが、エンジニアとしての成長につながります。