たまにしかpipを使わないので、使うたびに検索をすることが数回。
いっそのこと自分でまとめたら忘れないだろうと思ってまとめました。
扱っている項目は、pipのバージョンとインストール先の確認、一覧、パッケージの詳細、インストール、アンインストール、アップグレード(アップデート)です。
「まとめ」では扱ったコマンド一覧を確認できます。
参考サイト・pip documentation
私の環境
WSL2 - Ubuntu 20.04 LTS
Docker Python 3.9.0[Debian]
pip 20.2.4
基本的な文型
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 -V | pipのバージョンとインストール先の確認 |
pip list | インストールされているパッケージ一覧 |
pip list -o | アップグレードのあるパッケージ一覧 |
pip show [パッケージ] | パッケージの詳細 |
pip freeze > requirements.txt | requirements.txtに書き出し |
pip install [パッケージ] | パッケージのインストール |
pip install -r requirements.txt | requirements.txtを使ってインストール |
pip uninstall [パッケージ] | パッケージのアンインストール |
pip install -U [対象] | pipやパッケージのアップグレード |
このページが少しでもお役に立てたのなら幸いです。