[Python]pipの使い方

Python

たまにしかpipを使わないので、使うたびに検索をすることが数回。
いっそのこと自分でまとめたら忘れないだろうと思ってまとめました。

扱っている項目は、pipのバージョンとインストール先の確認、一覧、パッケージの詳細、インストール、アンインストール、アップグレード(アップデート)です。

「まとめ」では扱ったコマンド一覧を確認できます。

参考サイト・pip documentation

私の環境
WSL2 - Ubuntu 20.04 LTS
Docker Python 3.9.0[Debian]
pip 20.2.4

 Androidアプリを作成しました。
 感情用のメモ帳です。

スポンサーリンク
スポンサーリンク

基本的な文型

pipの基本的な呼び出し方です。

pip [コマンド] [オプション]

もしくは

python -m pip [コマンド] [オプション]

環境によっては、pythonではなくpython3、Windowsではpy、になります。

-m」というのはpythonのオプションで、上記はモジュールとしてpipを実行するよ、という意味です。

具体的に言うと、pipがインストールされているディレクトリに移動し、モジュールを実行していることと同じようなことです。

試してみましょう。

pipのインストールされたディレクトリに移動して「__main__.py」を実行します。

移動したので現在の位置を表示します。

$ pwd
/usr/local/lib/python3.9/site-packages/pip

実行してみましょう。
「-V」を渡し、バージョンを表示させてみます。

$ python __main__.py -V
pip 20.2.4 from /usr/local/lib/python3.9/site-packages/pip (python 3.9)

問題なく動作しました。

「pip コマンド」と「python -m pip コマンド」はどちらを使ってもいいようですが、公式で説明されているのは後者の方です。

以降の説明も後者の書き方を採用しています。

pipのバージョン・インストール先の確認

重複になりますが、pipのバージョンとそのインストール先の確認です。

python -m pip [-V もしくは --version]

「-V」のブイは大文字です。

実行例

$ python -m pip --version
pip 20.2.4 from /usr/local/lib/python3.9/site-packages/pip (python 3.9)

私の環境ではバージョンが20.2.4、パスがfromの後に記載されています。

パッケージ一覧

インストールされているパッケージ一覧を表示します。

python -m pip list

$ python -m pip list
Package         Version
--------------- -------
numpy           1.21.2
pandas          1.2.0
pip             20.2.4
python-dateutil 2.8.2
pytz            2021.3
setuptools      50.3.2
six             1.16.0
wheel           0.35.1

アップグレードのあるパッケージ一覧

コマンドの「list」と合わせて、オプション「-o」をつけると、古くなっているパッケージ一覧を表示します。

python -m pip list -o

$ python -m pip list -o
Package    Version Latest Type
---------- ------- ------ -----
pandas     1.2.0   1.3.3  wheel
pip        20.2.4  21.3   wheel
setuptools 50.3.2  58.2.0 wheel
wheel      0.35.1  0.37.0 wheel

パッケージ詳細[インストール先など]

python -m pip show [パッケージ名]

パッケージの情報を表示します。

バージョン、作者、ホームページ、インストールされている場所などを調べることができます。

pip本体の情報を見ることもできます。
表示してみましょう。

$ python -m pip show pip
Name: pip
Version: 20.2.4
Summary: The PyPA recommended tool for installing Python packages.
Home-page: https://pip.pypa.io/
Author: The pip developers
Author-email: distutils-sig@python.org
License: MIT
Location: /usr/local/lib/python3.9/site-packages
Requires: 
Required-by: 

「Location」がインストール先のディレクトリです。

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

python -m pip install [パッケージ名]

PyPIに登録されているパッケージ名の最新版がインストールされます。

例として、ウェブスクレイピングでよく利用される「beautifulsoup4」をインストールしてみます。

$ python -m pip install beautifulsoup4
Collecting beautifulsoup4
  Downloading beautifulsoup4-4.10.0-py3-none-any.whl (97 kB)
     |████████████████████████████████| 97 kB 3.7 MB/s 
Collecting soupsieve>1.2
  Downloading soupsieve-2.2.1-py3-none-any.whl (33 kB)
Installing collected packages: soupsieve, beautifulsoup4
Successfully installed beautifulsoup4-4.10.0 soupsieve-2.2.1

バージョンを指定してインストール

バージョンを指定してインストールするには、

パッケージ名==バージョン で行います。

pandasのバージョンを1.2.0に指定してインストールしてみます。

ちなみにpandasの現在(2021年10月)の最新バージョンは1.3.3です。

$ python -m pip install pandas==1.2.0
Collecting pandas==1.2.0
  Downloading pandas-1.2.0-cp39-cp39-manylinux1_x86_64.whl (9.7 MB)
     |████████████████████████████████| 9.7 MB 4.0 MB/s 
Collecting python-dateutil>=2.7.3
  Downloading python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
     |████████████████████████████████| 247 kB 11.3 MB/s 
Collecting pytz>=2017.3
  Downloading pytz-2021.3-py2.py3-none-any.whl (503 kB)
     |████████████████████████████████| 503 kB 10.4 MB/s 
Collecting numpy>=1.16.5
  Downloading numpy-1.21.2-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (15.8 MB)
     |████████████████████████████████| 15.8 MB 11.3 MB/s 
Collecting six>=1.5
  Downloading six-1.16.0-py2.py3-none-any.whl (11 kB)
Installing collected packages: six, python-dateutil, pytz, numpy, pandas
Successfully installed numpy-1.21.2 pandas-1.2.0 python-dateutil-2.8.2 pytz-2021.3 six-1.16.0

requirements.txtからのインストール

python -m pip freeze

freezeコマンドを使うと、インストールされているパッケージとそのバージョンが==で結ばれた書式で出力されます。

$ python -m pip freeze
beautifulsoup4==4.10.0
numpy==1.21.2
pandas==1.2.0
python-dateutil==2.8.2
pytz==2021.3
six==1.16.0
soupsieve==2.2.1

python -m pip freeze > requirements.txt

上記のように打ち込むと、出力結果をrequirements.txtに書き込むことができます。
ファイルはカレントディレクトリ内に作成されます。

この出来上がったrequirements.txtを使用して、別の環境に同じパッケージ(かつ同じバージョン)をインストールすることができるようになります。

別の環境にrequirement.txtをコピーします。
そのファイルのあるディレクトリで以下を実行します。

python -m pip install -r requirements.txt

オプション「-r」をつけないとエラーが出ます。

$ python -m pip install -r requirements.txt 
Collecting beautifulsoup4==4.10.0
  Downloading beautifulsoup4-4.10.0-py3-none-any.whl (97 kB)
     |████████████████████████████████| 97 kB 2.7 MB/s 
Collecting numpy==1.21.2
  Downloading numpy-1.21.2-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (15.8 MB)
     |████████████████████████████████| 15.8 MB 4.1 MB/s 
Collecting pandas==1.2.0
  Downloading pandas-1.2.0-cp39-cp39-manylinux1_x86_64.whl (9.7 MB)
     |████████████████████████████████| 9.7 MB 8.8 MB/s 
Collecting python-dateutil==2.8.2
  Downloading python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
     |████████████████████████████████| 247 kB 10.0 MB/s 
Collecting pytz==2021.3
  Downloading pytz-2021.3-py2.py3-none-any.whl (503 kB)
     |████████████████████████████████| 503 kB 6.5 MB/s 
Collecting six==1.16.0
  Downloading six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting soupsieve==2.2.1
  Downloading soupsieve-2.2.1-py3-none-any.whl (33 kB)
Installing collected packages: soupsieve, beautifulsoup4, numpy, six, python-dateutil, pytz, pandas
Successfully installed beautifulsoup4-4.10.0 numpy-1.21.2 pandas-1.2.0 python-dateutil-2.8.2 pytz-2021.3 six-1.16.0 soupsieve-2.2.1

ファイル名はrequirements.txtでなくても構いません。
ただ慣習的に使われているので、他の人と共有する場合にもrequirementであるほうがわかりやすいです。

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

python -m pip uninstall [パッケージ名]

$ python -m pip uninstall beautifulsoup4
Found existing installation: beautifulsoup4 4.10.0
Uninstalling beautifulsoup4-4.10.0:
  Would remove:
    /usr/local/lib/python3.9/site-packages/beautifulsoup4-4.10.0.dist-info/*
    /usr/local/lib/python3.9/site-packages/bs4/*
Proceed (y/n)? y
  Successfully uninstalled beautifulsoup4-4.10.0

yesかnoを聞かれるのでよければyを押してください。

uninstallコマンドの後に、オプションの「-y」をつけることで許諾を省略できます。

pipやパッケージのアップグレード

installの後にオプションをつけることで対象をアップグレードします。

python -m pip install [-U もしくは --upgrade] [対象]

pip自体をアップグレードするには対象に「pip」、パッケージならそのパッケージ名を書きます。

$ pip install -U pip
Collecting pip
  Downloading pip-21.3-py3-none-any.whl (1.7 MB)
     |████████████████████████████████| 1.7 MB 3.6 MB/s 
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 20.2.4
    Uninstalling pip-20.2.4:
      Successfully uninstalled pip-20.2.4
Successfully installed pip-21.3

まとめ

pipのコマンドとその使い方について見てきました。

「python -m」を省略したコマンドとその機能を表にまとめました。

コマンド機能
pip -Vpipのバージョンとインストール先の確認
pip list インストールされているパッケージ一覧
pip list -oアップグレードのあるパッケージ一覧
pip show [パッケージ]パッケージの詳細
pip freeze > requirements.txtrequirements.txtに書き出し
pip install [パッケージ]パッケージのインストール
pip install -r requirements.txtrequirements.txtを使ってインストール
pip uninstall [パッケージ]パッケージのアンインストール
pip install -U [対象]pipやパッケージのアップグレード

このページが少しでもお役に立てたのなら幸いです。

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