[解決!Python]pipコマンドでパッケージをインストール/アンインストールするには:解決!Python
Pythonの標準的なパッケージインストーラーであるpipコマンドを使ってパッケージをインストールしたりアンインストールしたり、インストールされているパッケージを調べたりする方法を紹介する。
* 本稿は2022年12月13日に公開された記事をPython 3.12.3およびpip v24.0で動作確認したものです(確認日:2024年5月7日)。
パッケージのインストール
コマンド | 説明 |
---|---|
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
Copyright© Digital Advantage Corp. All Rights Reserved.