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

Python

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

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

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

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

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

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

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

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

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

profile_icon

【Python歴】10年 x 【営業マン歴】11年

HP作成、社内システムの構築、コンサルティング

Pythonベースのフレームワーク 「Django」を使って下記のようなサイトを作っています!

日報アプリ
当ブログで一から開発方法を解説している日報アプリ(デモ版)です
ツールアプリ
当ブログで紹介したPythonアプリのWeb版です。DjangoAPIとReactで開発。随時更新中です。

icon
icon

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 install -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を活用して、アップデートが必要なパッケージを最新にしましょう。

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

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

✔当ブログは以下のような方に向けて書かれています

「Djangoでのアプリ開発を学びたい!」

「Djangoで開発したアプリをWebで公開するにはどうするの?」

✔当ブログ掲載の記事

  • Djangoで作る日報アプリ開発
  • WebアプリをWeb上に公開する方法
  • Webアプリ開発に必要なそのほかの情報
【Django】チュートリアル|日報アプリの開発から公開まで
Djangoのチュートリアルをお探しですか?具体的に「手を動かして作ってみたい!」という方へ向けて、誰でもできる簡易的な日報アプリの開発を通じて、Djangoの様々な機能に触れていくシリーズとなっています。PythonでWebアプリを作りたい方、必見の記事となります!

公式LINEも始めました。記事更新についてや、当ブログ内の人気記事などの情報を定期的に配信しています。

友だち追加

ITCブログにご協力いただける方は、以下もご検討いただけると嬉しいです。

ITCに投げ銭をする

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