pipでパッケージをupdate|pip自体のアップデートについても解説

※本サイトにはプロモーション・広告が含まれています。

(最終更新月:2022年11月)

✔当記事はこのような方に向けて書かれています

「pipでアップデートするときのコマンドが知りたい」

「パッケージのバージョンを指定してインストールする方法があるの?」

「アップデートが必要なパッケージの一覧を取得したい」

✔当記事を通じてお伝えすること

  • pipでパッケージをアップデートするコマンド
  • pipのコマンド一覧
  • pip自体をアップデートする方法

当記事では、pipでパッケージをアップデートする方法だけでなく、pip自体のアップデート方法やほかのコマンドの一覧までご理解いただけます。

ぜひ最後までご覧ください。

✔おすすめの書籍

created by Rinker
¥2,455 (2024/12/11 19:07:12時点 Amazon調べ-詳細)

筆者プロフィール

筆者プロフィールアイコン

【現職】プロダクトマネージャー

【副業】ブログ(月間20万PV)/YouTube/Web・アプリ制作

「プログラミング × ライティング × 営業」の経験を活かし、30後半からのIT系職へシフト。現在はプロダクトマネージャーとして、さまざまな関係者の間に入り奮闘してます。当サイトでは、実際に手を動かせるWebアプリの開発を通じて、プログラミングはもちろん、IT職に必要な情報を提供していきます。

【当ブログで紹介しているサイト】

当サイトチュートリアルで作成したデモ版日報アプリ

Django × Reactで開発したツール系Webアプリ

✔人に見せても恥ずかしくないコードを書こう

「リーダブルコード」は、わかりやすく良いコードの定義を教えてくれる本です。

  • 見るからにきれいなコードの書き方
  • コードの分割方法
  • 変数や関数の命名規則

エンジニアのスタンダートとすべき基準を一から解説しています。

何回も読むのに値する本なので、ぜひ手にとって読んでみてください。

pipでパッケージをupdateする方法

pipでパッケージをアップデートするには以下のとおり。

pip install -U パッケージ名

オプション「-U」を付けることで、特定のパッケージのアップデートができます。

パッケージ「requests」のアップデートを例とします。

$ pip install -U requests
Requirement already satisfied: requests in ./venv/lib/python3.8/site-packages (2.27.1)
Collecting requests
  Using cached requests-2.28.1-py3-none-any.whl (62 kB)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in ./venv/lib/python3.8/site-packages (from requests) (1.26.9)
Requirement already satisfied: certifi>=2017.4.17 in ./venv/lib/python3.8/site-packages (from requests) (2021.10.8)
Requirement already satisfied: idna<4,>=2.5 in ./venv/lib/python3.8/site-packages (from requests) (3.3)
Requirement already satisfied: charset-normalizer<3,>=2 in ./venv/lib/python3.8/site-packages (from requests) (2.0.12)
Installing collected packages: requests
  Attempting uninstall: requests
    Found existing installation: requests 2.27.1
    Uninstalling requests-2.27.1:
      Successfully uninstalled requests-2.27.1
Successfully installed requests-2.28.1

pip自体をアップデートする方法

pip自体をアップデートする方法はこちら。

pip install -U pip

pipをパッケージ名として、以下のように進めます。

$ pip install -U pip
Requirement already satisfied: pip in ./venv/lib/python3.8/site-packages (22.1)
Collecting pip
  Downloading pip-22.3.1-py3-none-any.whl (2.1 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.1/2.1 MB 2.5 MB/s eta 0:00:00
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 22.1
    Uninstalling pip-22.1:
      Successfully uninstalled pip-22.1
Successfully installed pip-22.3.1

pipでできること一覧

アップデート以外のできることを一覧にしました。

ほかのアップデートが必要なパッケージを調べる方法などがあります。

  • パッケージをインストールする
  • パッケージのバージョンを指定してインストールする
  • インストール可能なパッケージのバージョン一覧を取得する
  • パッケージをアンインストールする
  • インストール済みのパッケージ一覧を取得する
  • 最新バージョンのパッケージ一覧を取得する
  • アップデートが必要なパッケージ一覧を取得する
  • パッケージの依存関係を確認する
  • パッケージ一覧を要件形式で出力
  • 要件形式のパッケージ一覧を外部ファイルに保存する
  • 保存したファイルからパッケージを一括でインストールする

パッケージをインストールする

パッケージをインストールする時は以下のとおり。

pip install パッケージ名

1番最初に覚えるインストール方法です。

パッケージのバージョンを指定してインストールする

バージョンを指定するには「==(=を2つ)」を使います。

pip install パッケージ名==バージョン

以下、Pillowをバージョン指定して、インストールします。

$ pip install Pillow==9.3.0
Collecting Pillow==9.3.0
  Using cached Pillow-9.3.0-cp38-cp38-manylinux_2_28_x86_64.whl (3.3 MB)
Installing collected packages: Pillow
Successfully installed Pillow-9.3.0

インストール可能なパッケージのバージョン一覧を取得する

パッケージ名を指定して、インストール可能なバージョンの一覧を取得します。

pip install パッケージ名==

pip install Django==
ERROR: Could not find a version that satisfies the requirement Django== (from versions: 1.1.3, 1.1.4, 1.2, 1.2.1, 1.2.2, 1.2.3, 1.2.4, 1.2.5, 1.2.6, 1.2.7, 1.3, 1.3.1, 1.3.2, 1.3.3, 1.3.4, 1.3.5, 1.3.6, 1.3.7, 1.4, 1.4.1, 1.4.2, 1.4.3, 1.4.4, 1.4.5, 1.4.6, 1.4.7, 1.4.8, 1.4.9, 1.4.10, 1.4.11, 1.4.12, 1.4.13, 1.4.14, 1.4.15, 1.4.16, 1.4.17, 1.4.18, 1.4.19, 1.4.20, 1.4.21, 1.4.22, 1.5, 1.5.1, 1.5.2, 1.5.3, 1.5.4, 1.5.5, 1.5.6, 1.5.7, 1.5.8, 1.5.9, 1.5.10, 1.5.11, 1.5.12, 1.6, 1.6.1, 1.6.2, 1.6.3, 1.6.4, 1.6.5, 1.6.6, 1.6.7, 1.6.8, 1.6.9, 1.6.10, 1.6.11, 1.7, 1.7.1, 1.7.2, 1.7.3, 1.7.4, 1.7.5, 1.7.6, 1.7.7, 1.7.8, 1.7.9, 1.7.10, 1.7.11, 1.8a1, 1.8b1, 1.8b2, 1.8rc1, 1.8, 1.8.1, 1.8.2, 1.8.3, 1.8.4, 1.8.5, 1.8.6, 1.8.7, 1.8.8, 1.8.9, 1.8.10, 1.8.11, 1.8.12, 1.8.13, 1.8.14, 1.8.15, 1.8.16, 1.8.17, 1.8.18, 1.8.19, 1.9a1, 1.9b1, 1.9rc1, 1.9rc2, 1.9, 1.9.1, 1.9.2, 1.9.3, 1.9.4, 1.9.5, 1.9.6, 1.9.7, 1.9.8, 1.9.9, 1.9.10, 1.9.11, 1.9.12, 1.9.13, 1.10a1, 1.10b1, 1.10rc1, 1.10, 1.10.1, 1.10.2, 1.10.3, 1.10.4, 1.10.5, 1.10.6, 1.10.7, 1.10.8, 1.11a1, 1.11b1, 1.11rc1, 1.11, 1.11.1, 1.11.2, 1.11.3, 1.11.4, 1.11.5, 1.11.6, 1.11.7, 1.11.8, 1.11.9, 1.11.10, 1.11.11, 1.11.12, 1.11.13, 1.11.14, 1.11.15, 1.11.16, 1.11.17, 1.11.18, 1.11.20, 1.11.21, 1.11.22, 1.11.23, 1.11.24, 1.11.25, 1.11.26, 1.11.27, 1.11.28, 1.11.29, 2.0a1, 2.0b1, 2.0rc1, 2.0, 2.0.1, 2.0.2, 2.0.3, 2.0.4, 2.0.5, 2.0.6, 2.0.7, 2.0.8, 2.0.9, 2.0.10, 2.0.12, 2.0.13, 2.1a1, 2.1b1, 2.1rc1, 2.1, 2.1.1, 2.1.2, 2.1.3, 2.1.4, 2.1.5, 2.1.7, 2.1.8, 2.1.9, 2.1.10, 2.1.11, 2.1.12, 2.1.13, 2.1.14, 2.1.15, 2.2a1, 2.2b1, 2.2rc1, 2.2, 2.2.1, 2.2.2, 2.2.3, 2.2.4, 2.2.5, 2.2.6, 2.2.7, 2.2.8, 2.2.9, 2.2.10, 2.2.11, 2.2.12, 2.2.13, 2.2.14, 2.2.15, 2.2.16, 2.2.17, 2.2.18, 2.2.19, 2.2.20, 2.2.21, 2.2.22, 2.2.23, 2.2.24, 2.2.25, 2.2.26, 2.2.27, 2.2.28, 3.0a1, 3.0b1, 3.0rc1, 3.0, 3.0.1, 3.0.2, 3.0.3, 3.0.4, 3.0.5, 3.0.6, 3.0.7, 3.0.8, 3.0.9, 3.0.10, 3.0.11, 3.0.12, 3.0.13, 3.0.14, 3.1a1, 3.1b1, 3.1rc1, 3.1, 3.1.1, 3.1.2, 3.1.3, 3.1.4, 3.1.5, 3.1.6, 3.1.7, 3.1.8, 3.1.9, 3.1.10, 3.1.11, 3.1.12, 3.1.13, 3.1.14, 3.2a1, 3.2b1, 3.2rc1, 3.2, 3.2.1, 3.2.2, 3.2.3, 3.2.4, 3.2.5, 3.2.6, 3.2.7, 3.2.8, 3.2.9, 3.2.10, 3.2.11, 3.2.12, 3.2.13, 3.2.14, 3.2.15, 3.2.16, 4.0a1, 4.0b1, 4.0rc1, 4.0, 4.0.1, 4.0.2, 4.0.3, 4.0.4, 4.0.5, 4.0.6, 4.0.7, 4.0.8, 4.1a1, 4.1b1, 4.1rc1, 4.1, 4.1.1, 4.1.2, 4.1.3)
ERROR: No matching distribution found for Django==

パッケージをアンインストールする

パッケージをアンインストールする方法は以下のとおりです。

pip uninstall パッケージ名

インストール済みのパッケージ一覧を取得する

インストール済みのパッケージ一覧を取得する方法です。

pip list

$ pip list
Package             Version
------------------- ---------
asgiref             3.5.1
backports.zoneinfo  0.2.1
certifi             2021.10.8
cffi                1.15.0
charset-normalizer  2.0.12
cryptography        37.0.2
defusedxml          0.7.1
Django              4.0.4
django-allauth      0.50.0
django-crispy-forms 1.14.0
django-filter       21.1
idna                3.3
oauthlib            3.2.0
pip                 22.3.1
psycopg2-binary     2.9.3
pycparser           2.21
PyJWT               2.4.0
python3-openid      3.2.0
requests            2.28.1
requests-oauthlib   1.3.1
setuptools          61.2.0
sqlparse            0.4.2
urllib3             1.26.9
wheel               0.37.1

最新バージョンのパッケージ一覧を取得する

バージョンが既に最新のものだけ取得します。

pip list -u

pip list -u
Package             Version
------------------- -------
backports.zoneinfo  0.2.1
defusedxml          0.7.1
django-crispy-forms 1.14.0
pycparser           2.21
python3-openid      3.2.0
requests-oauthlib   1.3.1

アップデートが必要なパッケージ一覧を取得する

最新になっていないため、アップデートが必要なものだけを取得します。

pip list -o

$ pip list -o
Package            Version   Latest    Type
------------------ --------- --------- -----
asgiref            3.5.1     3.5.2     wheel
certifi            2021.10.8 2022.9.24 wheel
cffi               1.15.0    1.15.1    wheel
charset-normalizer 2.0.12    3.0.0     wheel
cryptography       37.0.2    38.0.3    wheel
Django             4.0.4     4.1.3     wheel
django-allauth     0.50.0    0.51.0    sdist
django-filter      21.1      22.1      wheel
idna               3.3       3.4       wheel
oauthlib           3.2.0     3.2.2     wheel
pip                22.1      22.3.1    wheel
psycopg2-binary    2.9.3     2.9.5     wheel
PyJWT              2.4.0     2.6.0     wheel
requests           2.27.1    2.28.1    wheel
setuptools         61.2.0    65.5.1    wheel
sqlparse           0.4.2     0.4.3     wheel
urllib3            1.26.9    1.26.12   wheel
wheel              0.37.1    0.38.4    wheel

パッケージの依存関係を確認する

パッケージの依存関係で問題ないかをチェックします。

pip check

$ pip check
No broken requirements found.

こちらは問題がない場合の例です。

パッケージ一覧を要件形式で出力

パッケージ一覧をあとで読み込める形式で出力します。

pip freeze

pip freeze
asgiref==3.5.1
backports.zoneinfo==0.2.1
certifi==2021.10.8
cffi==1.15.0
charset-normalizer==2.0.12
cryptography==37.0.2
defusedxml==0.7.1
Django==4.0.4
django-allauth==0.50.0
django-crispy-forms==1.14.0
django-filter==21.1
idna==3.3
oauthlib==3.2.0
psycopg2-binary==2.9.3
pycparser==2.21
PyJWT==2.4.0
python3-openid==3.2.0
requests==2.27.1
requests-oauthlib==1.3.1
sqlparse==0.4.2
urllib3==1.26.9

要件形式のパッケージ一覧を外部ファイルに保存する

要件形式で出力したファイルを保存するには以下のとおり。

pip freeze > ファイル名(requrirements.txtなど)

保存したファイルからパッケージを一括でインストールする

要件形式で保存したファイルからすべてのパッケージを一括でインストールします。

pip install -r ファイル名(requirements.txtなど)

$ pip install -r req.txt
Requirement already satisfied: asgiref==3.5.1 in ./venv/lib/python3.8/site-packages (from -r req.txt (line 1)) (3.5.1)
Requirement already satisfied: backports.zoneinfo==0.2.1 in ./venv/lib/python3.8/site-packages (from -r req.txt (line 2)) (0.2.1)
Requirement already satisfied: certifi==2021.10.8 in ./venv/lib/python3.8/site-packages (from -r req.txt (line 3)) (2021.10.8)
Requirement already satisfied: cffi==1.15.0 in ./venv/lib/python3.8/site-packages (from -r req.txt (line 4)) (1.15.0)
Requirement already satisfied: charset-normalizer==2.0.12 in ./venv/lib/python3.8/site-packages (from -r req.txt (line 5)) (2.0.12)
Requirement already satisfied: cryptography==37.0.2 in ./venv/lib/python3.8/site-packages (from -r req.txt (line 6)) (37.0.2)
Requirement already satisfied: defusedxml==0.7.1 in ./venv/lib/python3.8/site-packages (from -r req.txt (line 7)) (0.7.1)
Requirement already satisfied: Django==4.0.4 in ./venv/lib/python3.8/site-packages (from -r req.txt (line 8)) (4.0.4)
Requirement already satisfied: django-allauth==0.50.0 in ./venv/lib/python3.8/site-packages (from -r req.txt (line 9)) (0.50.0)
Requirement already satisfied: django-crispy-forms==1.14.0 in ./venv/lib/python3.8/site-packages (from -r req.txt (line 10)) (1.14.0)
Requirement already satisfied: django-filter==21.1 in ./venv/lib/python3.8/site-packages (from -r req.txt (line 11)) (21.1)
Requirement already satisfied: idna==3.3 in ./venv/lib/python3.8/site-packages (from -r req.txt (line 12)) (3.3)
Requirement already satisfied: oauthlib==3.2.0 in ./venv/lib/python3.8/site-packages (from -r req.txt (line 13)) (3.2.0)
Requirement already satisfied: psycopg2-binary==2.9.3 in ./venv/lib/python3.8/site-packages (from -r req.txt (line 14)) (2.9.3)
Requirement already satisfied: pycparser==2.21 in ./venv/lib/python3.8/site-packages (from -r req.txt (line 15)) (2.21)
Requirement already satisfied: PyJWT==2.4.0 in ./venv/lib/python3.8/site-packages (from -r req.txt (line 16)) (2.4.0)
Requirement already satisfied: python3-openid==3.2.0 in ./venv/lib/python3.8/site-packages (from -r req.txt (line 17)) (3.2.0)
Collecting requests==2.27.1
  Using cached requests-2.27.1-py2.py3-none-any.whl (63 kB)
Requirement already satisfied: requests-oauthlib==1.3.1 in ./venv/lib/python3.8/site-packages (from -r req.txt (line 19)) (1.3.1)
Requirement already satisfied: sqlparse==0.4.2 in ./venv/lib/python3.8/site-packages (from -r req.txt (line 20)) (0.4.2)
Requirement already satisfied: urllib3==1.26.9 in ./venv/lib/python3.8/site-packages (from -r req.txt (line 21)) (1.26.9)
Installing collected packages: requests
  Attempting uninstall: requests
    Found existing installation: requests 2.28.1
    Uninstalling requests-2.28.1:
      Successfully uninstalled requests-2.28.1
Successfully installed requests-2.27.1

pipをおこなう際にやるべきこと3選

pipを使う際に、事前にやっておくべきことをご紹介します。

さまざまなプロジェクトに関わったり、開発環境が変わったりすることに備えるです。

  • 仮想環境を準備する
  • インストール済みパッケージを保存しておく
  • バージョンは最新にすれば良いわけではない

仮想環境を準備する

pipを使うときは、仮想環境の準備をおすすめします。

なぜなら、おこなうプロジェクトなどにより、必要なパッケージが異なるから。

仮想環境を使わないと、複数のプロジェクトで使うパッケージがごちゃまぜになってしまいます。

仮想環境の作り方がわからない方は、こちらの記事をご覧ください。

インストール済みパッケージを保存しておく

pipを使って、パッケージをインストールしたら、常に一覧を保存しておくべきです。

ほかのPCで開発環境を構築する際に、パッケージだけでなく、バージョンまで揃える必要があります

新しいパッケージをインストールしたら以下のコマンドで、必ず保存しておきましょう。

pip freeze > requirements.txt

バージョンは最新にすれば良いわけではない

pipを使って開発を整える際に、常に最新のバージョンが良いわけではないことを理解しましょう。

同じプロジェクトを同時並行でおこなうときは、最新であることよりも、ほかと揃えることが大切

各パッケージで依存関係がある場合、バージョンがずれてしまうことでエラーの原因となることもあります。

既存のプロジェクトであれば、必ずバージョンを揃えてください。

まとめ:pipでupdateする方法は、覚えれば簡単

当記事の内容をまとめます。

  • pipでパッケージをアップデートするのは、「pip update」にパッケージ名を続ければ良い
  • pipでできることはたくさんあるので、覚えておくと意外に便利
  • pipを使うときは、仮想環境を立ち上げて、ほかとバージョンを揃えることを意識しよう

pipでアップデートする方法はとても簡単。

pip listを活用して、アップデートが必要なパッケージを最新にしましょう。

ただし同じプロジェクトを別環境で同時に開発しているなら、むやみやたらと最新にすることはおすすめしません

必要に応じて使いこなすようにしてください。

タイトルとURLをコピーしました