Pythonには豊富な標準ライブラリが備わっています。システム、ファイルIO、関数、データベース、ウェブ等、非常に多彩です。Pythonが「バッテリー同梱(batteries included)」と呼ばれる所以です。
プログラムの作成では、機能はなるべく自分で作らないで、ライブラリを活用して省力化します。基本的な機能は標準ライブラリにありますが、ない場合には外部(サードパーティー)から探します。
Pythonには、PyPI(Python Package Index)と呼ばれるサードパーティライブラリを管理している場所があります。PyPIはコミュニティが運営しているレポジトリという倉庫のような仕組みであり、2019年4月時点で約17.5万のライブラリパッケージが登録されています。
PyPI – the Python Package Index
PyPIからライブラリをインストールするには、pip
(The Python Package Installer)と呼ばれるツールを使用します。これによりインターネットを経由したインストールが簡単にできます。
例えば、エクセルの読み書きができるOpenPyXL 、PDFページを操作するPyPDF2 などのよく利用されているライブラリは、pip
を用いてPyPIから簡単にインストールできます。
pipは、Python3.4以上(Python2の場合は2.7.9以上)であれば、プレインストールされていますので、すぐ利用できます。
今回はpipを用いたインストール方法全般について説明します。なお、ここではPython3.5以上を用いて、Windows環境で説明しています。
この記事の目次
- ライブラリのインストール(pip install)
- バージョンを指定してインストールする
- インストール済みのライブラリの確認(pip list)
- ライブラリのアンインストール(pip uninstall)
- ライブラリのアップグレード
- 依存するライブラリを調べる方法(pip show)
- pip自体のアップグレード
- ヘルプの表示
- PyCharmにおけるライブラリの管理
- エラーが表示されてインストールできない場合
Windowsの場合は、pip の前に「py -m 」を付けてください(本文中では省略しています)
WindowsにPythonをデフォルトでインストールした状態では、pip
をそのまま実行することができません(PATHが通っていないため)。以下のようにpy -m
を付けると実行できます。
py -m pip install pypdf2
py
はPythonランチャー(py.exe)を実行するコマンドであり、Pythonを最適なバージョンで起動してくれます。複数のバージョンがインストールされている場合には、最新バージョンのPythonを起動します。そのため、古いバージョンのPythonにライブラリをインストールしたい場合は、以下のようにPythonのバージョンを明示してインストールします。
py -3.4 -m pip install pypdf2
複数のPythonがある場合は、違うバージョンにインストールしたライブラリは利用できないので気をつけてください。複数バージョンの管理についてはこちらのページを参考にしてください。
ライブラリのインストール
pipはコマンドで実行しますので、まずコマンドプロンプト(背景の黒い画面)を開きます。
1. コマンドプロンプトを開く
- 「Windowsキー()+ r 」を入力すると、以下のような画面が開きます。
- 「cmd」 と入力して OK をクリックするとコマンドプロンプトが開きます。
2. pip install を実行する
例えば、PDFを作成するために、PyPDF2ライブラリをインストールするには、以下のように
> pip install pypdf2
と入力してEnterキーを押すとダウンロードとインストールが開始されます。
既にインストール済みの場合
以下のようなメッセージが表示されたら、既にインストールされています。
Requirement already satisfied: pypdf2 in /ライブラリのバス/
最新版にアップグレードする場合は、以下のようにライブラリ名の前に --upgrade
または -U
を付加します。このオプションを付けても新規インストールは実行されるので、最初から付けていても構いません(ただし、ライブラリの依存関係に留意してください [詳しくはこちらを参照] )。
> pip install -U pypdf2
バージョンを指定してインストールする
以下のようにライブラリ名の後に==
でバージョン番号を付加します。
> pip install pypdf2==1.25
以前のバージョンを指定すれば、バージョンを戻すこと(ダウングレード)も可能です。
インストール可能なバージョン番号を調べる方法
インストール可能なバージョン番号は、以下のようにバージョン番号を空欄にしてエラーメッセージを表示させるとわかります。
> pip install pypdf2==
以下のようにインストール可能なバージョン番号が表示されます。
Collecting pypdf2==
Could not find a version that satisfies the requirement pypdf2== (from versions: 1.17, 1.18, 1.19, 1.20, 1.21, 1.22, 1.23, 1.24, 1.25, 1.25.1, 1.26.0)
No matching distribution found for pypdf2==
インストール済みのライブラリの確認
pip list
を実行するとインストール済みのライブラリを確認できます。
> pip list
以下のようにインストール済みのライブラリが表示されます。この例では6個のライブラリがインストールされています。
-v
オプションを付けて実行するとライブラリの「インストール場所(Location)」と「インストーラ(Installer)」も確認できます。仮想環境やライブラリがプレインストールされているサーバーでインストール場所を確認するのに便利です。
> pip list -v
ライブラリのアンインストール
ライブラリを指定してpip uninstall
を実行するとアンインストールできます。例えば、上記でインストールしたPyPDF2ライブラリをアンインストールするには、以下のコマンドを実行します。
> pip uninstall pypdf2
ライブラリのアップグレード
--upgrade
または -U
を付けてインストールを実行すると最新版にアップグレードできます。
例えば、上記でインストールしたPyPDF2ライブラリを最新版にアップグレードするには、以下のコマンドを実行します。
> pip install --upgrade pypdf2
以下のように短縮形(-U)も使えます
> pip install -U pypdf2
指定したライブラリがインストールされていない場合は、通常のインストールが実行されます。
最新版かチェックする方法
インストール済みのライブラリが最新版かチェックするには、--outdated
を付けてpip list
を実行します。以下のように、最新でないライブラリだけが表示されます。
> pip list --outdated
最新でないライブラリが表示されます。sdistとwheelは提供されているフォーマット名です。
GDAL (1.11.5) - Latest: 2.2.3 [sdist]
more-itertools (3.2.0) - Latest: 4.0.1 [wheel]
pandas (0.20.3) - Latest: 0.21.1 [wheel]
pytz (2017.2) - Latest: 2017.3 [wheel]
......
バージョンの控えを記録しておく方法
ライブラリのなかには、他のライブラリを利用しているものがあります。そのため、アップグレードによりライブラリ間の依存関係が損なわれると動かなくなることがあります(アップグレードの対応に間に合っていない場合など)。そのような時のために、正常に動作していた時のバージョンを控えておきます。
pip freeze
を実行すると、現在インストールされているライブラリとそのバージョンが出力されるので、以下のようにテキストファイル(requirements.txt)に記録しておきます。
> pip freeze > requirements.txt
# requirements.txtの中身 Flask==0.12.2 GDAL==1.11.5 Jinja2==2.10 numpy==1.13.3 ......
このようにバージョンの控えをとっておけば、もしも動かなくなっても-r
の後ろに控えのテキストファイルを指定してインストールを実行すれば簡単に復元できます。
> pip install -r requirements.txt
以下のページでも、ライブラリの更新方法を詳しく説明しています。
依存するライブラリを調べる方法
pip show
で出力されるRequires:
に依存するライブラリが表示されます。
例えば、requests というWebから情報を取得するのに便利なライブラリは、以下のようにchardet, urllib3, certifi, idnaという4つのライブラリに依存していることがわかります。
> pip show requests
Name: requests
Version: 2.18.4
Summary: Python HTTP for Humans.
Home-page: http://python-requests.org
Author: Kenneth Reitz
Author-email: me@kennethreitz.org
License: Apache 2.0
Location: c:\users\ichiro\appdata\local\programs\python\python36-32\lib\site-packages
Requires: chardet, urllib3, certifi, idna
また、pipdeptree というツールを使うと依存関係をもっと詳細に調べることができます。pipdeptreeは、pip install pipdeptree
でインストールできます。
> pipdeptree -p requests
requests==2.18.4
- certifi [required: >=2017.4.17, installed: 2017.11.5]
- chardet [required: <3.1.0,>=3.0.2, installed: 3.0.4]
- idna [required: <2.7,>=2.5, installed: 2.6]
- urllib3 [required: >=1.21.1,<1.23, installed: 1.22]
pip自体のアップグレード
pipを利用していると、以下のようにpip自体のアップグレードを促すメッセージが表示されることがあります。
メッセージの部分
You are using pip version 8.1.1, however version 9.0.1 is available. You should consider upgrading via the 'python -m pip install --upgrade pip' command.
このような場合は、メッセージに従い、以下のコマンドでpip自体をアップグレードします。
> pip install --upgrade pip
または
> pip install -U pip
--force-reinstall
オプションを付けて再度実行してみてください。
> pip install --force-reinstall --upgrade pip
または
> pip install --force-reinstall -U pip
ヘルプの表示
さらに詳しい使い方は、以下のように知りたいコマンド(例えば、install
)の後ろに-h
オプションを加えて実行します。
> pip install -h
以下のように表示されます。
Usage:
pip install [options] [package-index-options] ...
pip install [options] -r [package-index-options] ...
pip install [options] [-e] ...
pip install [options] [-e] ...
pip install [options] ...
Description:
Install packages from:
- PyPI (and other indexes) using requirement specifiers.
.................
PyCharmにおけるライブラリの管理
PyCharmではライブラリを視覚的に管理できます。以下のページに詳しく説明していますので、PyCharmを使っている方は、ぜひ参考にしてください。
エラーが表示されてインストールできない場合
まず考えられる原因はプロキシサーバーにより通信が制限されているケースです。その場合は、環境変数にサーバー情報を指定すると大抵はインストール可能になります。
それでもできない場合は、他の環境でライブラリのファイルをダウンロードして、ローカルからインストールします。それぞれの方法は、以下のサイトを参考にしてください。