こんにちは、うおなです
Pythonで、ライブラリを使用したい時には、「pip」というモジュールを利用するのが一般的です。
このpipを利用すると、ライブラリのバージョン管理やアップグレードを簡単に行なうことができます。
また、現在インストールされているライブラリを一覧にして、確認したり、逆に不要になったライブラリをアンインストールすることもできます。
Pythonを学び始めて、便利だなと感じたものの1つです。
今回は、pipのコマンドについて、掘り下げていきます。
ライブラリのインストール (install)
pip install PackageName
PacakgeNameの部分を、インストールしたいライブラリに変更することで、任意のライブラリをインストールすることができます。
例えば、「geocoder」というライブラリをインストールしたい場合は、次のようになります。
pip install geocoder
Python のライブラリが登録されているPyPIには、pipを利用してインストールする時の指定方法が、書かれています。
この方法でインストールを行なうと、ライブラリの最新バージョンをインストールします。
公開されているライブラリの最新バージョンが、「1.38.1」の場合、「1.38.1」をインストールします。
1.1 バージョンを指定して、インストールする(==version)
pip install PackageName==2.0.0
ライブラリの特定のバージョンをインストールしたい場合には、等号(=)を2つ記述した後に、バージョン番号を指定します。
geocoderの2021年2月現在の最新バージョンは、1.38.1です。geocoderのバージョン1.37.0をインストールしたい場合は、次のように記述します。
pip install geocoder==1.37.0
1.2 バージョンを不等号(<, >)で指定して、インストールする(<=version)
pip install 'PackegeName<=1.0'
先程の、等号(=)ではなく、不等号(<, >)を利用して、あるバージョン以下、または以上を指定して、インストールすることができます。
このバージョン指定の方法を利用する際は、引用符(’)で、囲む必要があることに注意してください。
以上(’PackageName>=1.0’)と記述すると、最新バージョンをインストールします。
以下(’PackageName<=1.0’)と記述すると、指定したバージョンの1つ手前のバージョンをインストールします。
pip install 'geocoder<=1.0'
このように記述すると、バージョン1.0の1つ手前は、バージョン0.9.1なので、geocoderのバージョン0.9.1をインストールします。
!= を使って、指定したバージョン以外をインストールすることもできます。
1.3 ライブラリをアップグレードする(–upgrade)
pip install --upgrade PackageName
または、次の短縮形
pip install -U PackageName
install に、「–upgrade」というオプションをつけることで、最新バージョンにアップデートを行なうことができます。
pip install --upgrade geocoder
geocoderを、アップデートする場合は、上記のように記述します。
1.3.1 pip自体をアップグレードしたい場合
pip コマンドを実行していると、実行結果とともに、pipのアップグレードを求められる場合があります。
その場合は、次のように入力します。
pip install -U pip
pip 自体も、PyPIに公開されているライブラリなので、pip を利用して、pip 自体をアップグレードしたり、show で情報を表示することができます。
ライブラリをアンインストールする(uninstall)
pip uninstall PackageName
uninstall の次に、削除したいライブラリを指定すると、そのライブラリを削除することができます。
pip uninstall geocoder
このように記述することで、geocoderを削除することができます。
また、上記のコマンドを入力した後に、削除するファイルの表示と、最終確認が求められるので、
うっかり消してしまうということはないと思います。
PS C:\Users\環境により変わる部分> pip uninstall cerberus
Found existing installation: Cerberus 1.3.2
Uninstalling Cerberus-1.3.2:
Would remove:
c:\users\環境により変わる部分\python\python39\lib\site-packages\cerberus-1.3.2-py3.9.egg-info
c:\users\環境により変わる部分\python\python39\lib\site-packages\cerberus\*
Proceed (y/n)?
削除を実行して良いか、と聞いてくるので、「y」を入力すると、削除が実行されます。
実行したくない場合は、「n」を入力すれば、削除を実行しません。
削除に成功すると、「Successfully uninstalled Cerberus-1.3.2」というようなメッセージが表示されます。
インストール済みのライブラリの一覧表示(list)
pip list
現在インストールしているライブラリの一覧を表示することができます。
ライブラリ名に合わせて、インストールしているバージョンも確認できます。
PS C:\Users\環境により変わる部分\Python> pip list
Package Version
-------------------- ---------
argon2-cffi 20.1.0
astroid 2.4.2
async-generator 1.10
attrs 20.3.0
backcall 0.2.0
bleach 3.3.0
Cerberus 1.3.2
certifi 2020.12.5
cffi 1.14.4
chardet 4.0.0
click 7.1.2
colorama 0.4.4
cycler 0.10.0
ライブラリは、アルファベット順に並びます。
3.1 インストール済みのライブラリのうち、古いものを表示(–outdated)
pip list --outdated
先程の、「pip list」は、インストール済みのライブラリを全て、表示するものでした。
listに「–outdated」というオプションをつけることで、より新しいバージョンが公開されているライブラリのみの一覧を表示できます。
私の環境で実行した結果の抜粋を、貼ります。
PS C:\Users\環境により変わる部分\Python> pip list --outdated
Package Version Latest Type
----------------- ------- ------ -----
idna 2.10 3.1 wheel
ipykernel 5.4.2 5.4.3 wheel
ipython 7.19.0 7.20.0 wheel
isort 5.6.4 5.7.0 wheel
jedi 0.17.2 0.18.0 wheel
jupyter-client 6.1.7 6.1.11 wheel
jupyter-core 4.7.0 4.7.1 wheel
lazy-object-proxy 1.4.3 1.5.2 wheel
matplotlib 3.3.3 3.3.4 wheel
numpy 1.19.4 1.20.0 wheel
parso 0.7.1 0.8.1 wheel
Versionに、現在インストールされている、バージョンが表示されます。
Latestが、現在公開されている最新のバージョンになります。
3.2 インストール済みのライブラリのうち、最新のものを表示(–u)
pip list -u
「-u」というオプションをつけることで、最新バージョンをインストールしているライブラリの一覧を表示できます。
一覧の表示自体は、「pip list」を実行した時と変わりません。
ライブラリのライブラリファイルを作成する(freeze)
pip freeze
このコマンドを実行すると、「ライブラリの名前=ライブラリのバージョン」という形で、一覧が表示されます。
PS C:\Users\環境により変わる部分\Python> pip freeze
argon2-cffi==20.1.0
astroid==2.4.2
async-generator==1.10
attrs==20.3.0
backcall==0.2.0
bleach==3.3.0
Cerberus==1.3.2
certifi==2020.12.5
cffi==1.14.4
chardet==4.0.0
click==7.1.2
colorama==0.4.4
cycler==0.10.0
decorator==4.4.2
defusedxml==0.6.0
entrypoints==0.3
このコマンドにオプションを追加することで、ライブラリとそのバージョンが書かれたファイルを作成することができます。
pip freeze > requirements.txt
これは、現在の環境のライブラリの一覧を保存しておき、環境に何か問題が起きて、再度ライブラリのインストールが必要になった時に、そのファイルを使って、一度にインストールを行なうことができます。
ファイルは、pipコマンドを実行している階層に作成されます。
4.1 ライブラリファイルを利用して、インストールを行なう
pip install -r requirements.txt
「pip freeze > requirements.txt」で作った、ライブラリの一覧が記述されたファイルを使って、
複数のライブラリを一度に、インストールすることができます。
主に、環境が壊れてしまった時や、他のPCやサーバに同じ環境を構築したい時に、便利なコマンドだと思います。
インストール済みライブラリの詳細を表示する(show)
pip show PackaegeName
このように、記述することで、ライブラリが依存しているライブラリや、ライブラリの製作者、製作者のemailなど、色々な情報が表示されます。
私の環境で、「geocoder」の詳細を表示すると次のようになります。
PS C:\Users\環境により変わる部分\Python> pip show geocoder
Name: geocoder
Version: 1.38.1
Summary: Geocoder is a simple and consistent geocoding library.
Home-page: https://github.com/DenisCarriere/geocoder
Author: Denis Carriere
Author-email: carriere.denis@gmail.com
License: The MIT License
Location: c:\users\環境により変わる部分\python\python39\lib\site-packages
Requires: requests, ratelim, future, six, click
Required-by:
- Name…ライブラリの名前
- Version…現在インストールしているバージョン
- Summary…ライブラリの簡単な説明
- Home-page…ライブラリのホームページ
- Author…ライブラリの製作者
- Author-email…ライブラリのメールアドレス
- License…ライブラリのライセンス
- Location…ライブラリが実際にインストールされている場所
- Requires…このライブラリが依存しているライブラリ
- Reqired-by…このライブラリに依存しているライブラリ
ライブラリの検索(search)
pip search PackageName
「search」を利用することで、PyPIからライブラリを検索することができます。
ただ、私の環境では、検索ができないため、PyPIから直接検索しています。
ライブラリの依存関係の確認(check)
pip check
「check」コマンドを入力することで、現在の自分の環境のライブラリの依存関係に問題がないか、確認することができます。
問題が無ければ、「No broken requirements found.」と表示されます。
もし、問題がある場合は、問題が発生しているライブラリの名前が表示されます。