[解決!Python]pipコマンドでパッケージをインストール/アンインストールするには解決!Python

Pythonの標準的なパッケージインストーラーであるpipコマンドを使ってパッケージをインストールしたりアンインストールしたり、インストールされているパッケージを調べたりする方法を紹介する。

» 2023年09月11日 05時00分 公開
[かわさきしんじDeep Insider編集部]
「解決!Python」のインデックス

連載目次

* 本稿は2022年12月13日に公開された記事をPython 3.11.5およびpip v23.2.1で動作確認したものです(確認日:2023年9月11日)。


パッケージのインストール

コマンド 説明
pip install somepackage somepackageの最新バージョンをインストールする
pip install somepackage==x.y.z バージョンを指定してsomepackageをインストールする
pip install "somepackage>=x.y.z" バージョンの下限を指定してsomepackageをインストールする
pip install --upgrade somepackage somepackageを最新バージョンにアップグレードする
pip install -r requirements.txt requirements.txtファイルに記述されているパッケージをインストールする
pip install somepkg@git+https://github.com/user/somepkg.git@vx.y.z GitHubからsomepkgの特定のバージョンをインストールする
pip installコマンド

パッケージのアンインストール

コマンド 説明
pip uninstall somepackage somepackageをアンインストール
pip uninstall --yes somepackage 確認プロンプトを表示せず、アンインストールを行う
pip uninstall -r requirements.txt requirements.txtファイルに記述されているモジュールをアンインストールする
pip uninstallコマンド

インストールされているパッケージの一覧

コマンド 説明
pip freeze インストールされているパッケージの一覧を出力する
pip freeze > requirements.txt インストールされているパッケージの一覧をrequirements.txtファイルに出力する
pip list インストールされているパッケージの一覧を出力する
pip show somepackage somepackageについての情報を出力する
パッケージを一覧するコマンド

pipコマンド

 pipコマンドはPythonの代表的なパッケージインストーラーの一つであり、多くのPython処理系では、処理系本体とともにインストールされている。

 pipはコマンドラインツールとしても、pythonコマンドの-mオプションにモジュール名として「pip」を指定しても実行できる。pipコマンドを実行すると、そのときに環境変数PATHで先頭に近い位置に記述されているディレクトリに含まれるPythonバージョンとそれに対応するpipモジュールが使われて、そのバージョンの環境にパッケージがインストールされる。これに対して、「python -m pip ……」形式でpipを実行すると、使用するPython環境(つまり、パッケージをインストールする環境)を指定できる。

 例えば、Python 3.11のインストールディレクトリがPython 3.10のインストールディレクトリよりも環境変数PATHで先に記述されている場合、「pip install somepackage」コマンドを実行すると、Python 3.11の環境にパッケージがインストールされる。「python -m pip ……」としてもこれは同様だが、バージョンを指定して「python3.10 -m pip somepackage」とするとPython 3.10の環境にパッケージがインストールされる。

 ただし、多くの場合はPCにインストールしたPython環境にパッケージを無差別にインストールするのではなく、venvモジュールなどを使って、プロジェクトごとに仮想環境を構築して、その環境にパッケージをインストールするのがよいだろう(仮想環境の構築については別稿で取り上げる予定だ)。

% pip --help  # pipをコマンドとして起動
% python -m pip --help  # pythonコマンドからpipを使用
% python3.10 -m pip --help  # Python 3.10(と対応するpipモジュール)を使用



 Windows環境ではPythonの起動ユーティリティーであるpyコマンドが使われることもある。このときには、pipコマンドがパスに含まれていないことがほとんどだ。このときには以下の例に示すように「py -m pip」のようにしてpipコマンドを起動することになる。このときにはpyコマンドに「-バージョン」を付加して、使用するPythonのバージョンを指定できる(Microsoft Store経由でインストールしたPython処理系については「python3.9 -m pip ……」のような形式でpipを実行可能だ)。

> py -m pip --help  # Windowsではpythonコマンドではなくpyコマンドのことが多い
> py -3.10 -m pip --help  # Python 3.10(と対応するpipモジュール)を使用



 本稿では一貫して「pip コマンド オプション」形式を用いて例を示すことにする。また、環境によってはpipコマンドではなく、pip3コマンドとして実行することもあるが本稿では「pip」とする。ご自分の使い方に応じて「python -m pip ……」「pip3 ……」などと読み替えていただきたい。

 pipコマンドには多くのコマンドが用意されている。それらのうち幾つかを以下にまとめておこう。

  • pip installコマンド:パッケージのインストール
  • pip uninstallコマンド:パッケージのアンインストール
  • pip freezeコマンド:現在の環境にインストールされているパッケージの一覧を出力
  • pip listコマンド:現在の環境にインストールされているパッケージの一覧を出力
  • pip showコマンド:指定したパッケージについての情報を出力

 以下ではこれらについて見ていく。

pip installコマンド:パッケージのインストール

 pip installコマンドは指定したパッケージを現在の環境にインストールする。以下は一番簡単なインストールの例だ。

% pip install somepackage



 このときにはPyPIからsomepackageの最新バージョンとこのパッケージが依存するパッケージがインストールされる。インストールするパッケージを複数指定することも可能だ。

 バージョンを指定してパッケージをインストールするには「パッケージ名==x.y.z」とする。「x.y.z」はインストールしたいパッケージのバージョンである。あるいは「'パッケージ名>=x.y.z'」のように「このバージョンかそれより新しいバージョン」のような指定も可能だ。ただし、その場合は「"パッケージ名>=x.y.z"」のようにダブルクオートまたはシングルクオートで囲む必要がある。

% pip install somepackage==x.y.z
% pip install "somepackage>=x.y.z"



 インストール済みのパッケージをバージョンアップ(アップグレード)するにはinstallコマンドに--upgradeオプションを指定する。

% pip install --upgrade somepackage



 ローカルに何らかのPythonプロジェクトを持ってきた(GitHubからプロジェクトをクローンした)ときには、そのプロジェクトで必要とされているパッケージを複数まとめてインストールしたいときがある。このときには、そのプロジェクトが依存しているパッケージをまとめて記述したファイル、いわゆる「requirements.txt」ファイルを用いて、一気にそれらをインストールできる。これにはpip installコマンドの-rオプションにrequirements.txtを指定する。

% pip install -r requirements.txt



 最後にPyPIではなくGitHubリポジトリからパッケージをインストールするコマンドラインの例を以下に示す。リモートリポジトリからパッケージをインストールする詳細については別項で取り上げる予定だ。

% pip install somepkg@git+https://github.com/user/somepkg.git@vx.y.z



pip uninstallコマンド:パッケージのアンインストール

 パッケージをアンインストールするには、pip uninstallコマンドを使用する。

 以下にシンプルな例を示す。

% pip uninstall somepackage



 この例は現在の環境にインストールされているsomepackageパッケージをアンインストールするものだ。ただし、somepackageが依存しているパッケージについてはインストールされないことに注意しよう。アンインストールする対象は複数指定してもよい。

 以下にまっさらの仮想環境にrequestsパッケージをインストールした状態で、このパッケージをアンインストールしようとした際の出力を示す(macOS)。

% pip uninstall requests
Found existing installation: requests 2.28.1
Uninstalling requests-2.28.1:
  Would remove:
    /Users/someuser/……/venv/lib/python3.11/site-packages/requests-2.28.1.dist-info/*
    /Users/someuser/……/venv/lib/python3.11/site-packages/requests/*
Proceed (Y/n)?



 このようにアンインストール時には「Proceed (Y/n)?」というプロンプトが表示され、これにyと答えることでアンインストールが実行される。「pip uninstall pkg1 pkg2 pkg3」のように複数のパッケージをアンインストールしようとすると、パッケージごとにアンインストールの確認プロンプトが表示されるので、煩わしく感じるかもしれない。このようなときには--yesオプション(-yオプション)を指定すると、削除の確認を省略して、指定したパッケージのアンインストールをまとめて行える。

% pip uninstall --yes somepackage



 requirements.txtファイルに記述されているパッケージをまとめてアンインストールすることも可能だ。これにはpip uninstallコマンドの-rオプションにrequirements.txtファイルを指定するだけだ(このときにも確認プロンプトがパッケージごとに表示されるので、面倒だという人は上で紹介した--yesオプションを指定するようにしよう)。

% pip uninstall -r requirements.txt



インストールされているパッケージの一覧

 現在の環境にどんなパッケージがインストールされているかは、pip freezeコマンド、pip listコマンドで確認できる。前者はデフォルトでrequirements.txtファイルの記述フォーマットに合致した形式で出力が行われる。後者はデフォルトで表形式の出力が行われる。

% pip freeze
% pip list



 以下は仮想環境にpipコマンドでrequestsパッケージをインストールした状態でpip freezeコマンドを実行した結果だ。

% pip freeze
certifi==2022.12.7
charset-normalizer==2.1.1
idna==3.4
requests==2.28.1
urllib3==1.26.13



 このようにrequestsパッケージをインストールするだけで、これが依存する複数のパッケージが同時にインストールされることが分かる。また、各行には「パッケージ名==インストールされているバージョン」形式でインストールされているパッケージが記述されていることも分かる。

 自分が何らかのパッケージやモジュールを開発している場合、pip freezeコマンドの出力をrequirements.txtファイルにリダイレクトすれば、必要なパッケージをファイルにまとめられる。これがあれば、誰か他の人にプロジェクトを渡したり、別の位置でプロジェクトをコピーしたりクローンしたりしたときに、必要な依存関係のインストールが簡単に行えるようになる。

% pip freeze > requirements.txt



 一方、pip listコマンドを実行すると、その結果は次のようになる。

% pip list
Package            Version
------------------ ---------
certifi            2022.12.7
charset-normalizer 2.1.1
idna               3.4
pip                22.3.1
requests           2.28.1
setuptools         65.5.0
urllib3            1.26.13



 pip listコマンドの出力には、pip freezeコマンドでは出力されなかったpipとsetuptoolsの2つのパッケージも含まれている点にも注意しよう(pip freezeコマンドの出力にこれらが含まれないのは「pip uninstall -r requirements.txt」コマンドでpipやsetuptoolsまでアンインストールされては困るからだろう)。

 pip listコマンドにはインストールされているパッケージのうち、もっと新しいバージョンがあるものを一覧する--outdated(-o)オプションや最新のパッケージであるものを一覧する--uptodate(-u)オプション、出力形式を変更する--formatオプションなどもある。詳しくはドキュメントを参照のこと。

 最後にインストールされているパッケージの情報を表示するには、pip showコマンドを使用する。

% pip show somepackage



「解決!Python」のインデックス

解決!Python

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。