(最終更新月:2022年11月)
✔当記事はこのような方に向けて書かれています
「pipでアップデートするときのコマンドが知りたい」
「パッケージのバージョンを指定してインストールする方法があるの?」
「アップデートが必要なパッケージの一覧を取得したい」
✔当記事を通じてお伝えすること
- pipでパッケージをアップデートするコマンド
- pipのコマンド一覧
- pip自体をアップデートする方法
当記事では、pipでパッケージをアップデートする方法だけでなく、pip自体のアップデート方法やほかのコマンドの一覧までご理解いただけます。
ぜひ最後までご覧ください。
✔おすすめの書籍
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を活用して、アップデートが必要なパッケージを最新にしましょう。
ただし同じプロジェクトを別環境で同時に開発しているなら、むやみやたらと最新にすることはおすすめしません。
必要に応じて使いこなすようにしてください。