Pythonライブラリのインストール - pipの使い方

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)と呼ばれるツールを使用します。これによりインターネットを経由したインストールが簡単にできます。

pip公式ドキュメント

例えば、エクセルの読み書きができるOpenPyXL 、PDFページを操作するPyPDF2 などのよく利用されているライブラリは、pipを用いてPyPIから簡単にインストールできます。

pipは、Python3.4以上(Python2の場合は2.7.9以上)であれば、プレインストールされていますので、すぐ利用できます。

今回はpipを用いたインストール方法全般について説明します。なお、ここではPython3.5以上を用いて、Windows環境で説明しています。

この記事の目次

Windowsの場合は、pip の前に「py -m 」を付けてください(本文中では省略しています)

WindowsにPythonをデフォルトでインストールした状態では、pipをそのまま実行することができません(PATHが通っていないため)。以下のようにpy -mを付けると実行できます。

py -m pip install pypdf2

pyPythonランチャー(py.exe)を実行するコマンドであり、Pythonを最適なバージョンで起動してくれます。複数のバージョンがインストールされている場合には、最新バージョンのPythonを起動します。そのため、古いバージョンのPythonにライブラリをインストールしたい場合は、以下のようにPythonのバージョンを明示してインストールします。

py -3.4 -m pip install pypdf2 

複数のPythonがある場合は、違うバージョンにインストールしたライブラリは利用できないので気をつけてください。複数バージョンの管理についてはこちらのページを参考にしてください。

ライブラリのインストール

pipはコマンドで実行しますので、まずコマンドプロンプト(背景の黒い画面)を開きます。

1. コマンドプロンプトを開く

  1. 「Windowsキー()+ r 」を入力すると、以下のような画面が開きます。
  2. open cmd

  3. 「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個のライブラリがインストールされています。

ここの実行例では、警告が出ていますが、「近いうちにリスト表示をカラム形式に変更するので、いまのままが良い場合は設定を変更してください」という内容だけですので、特に表示形式にこだわらなければそのままにしてください。私は気にしないので、そのままにします。

ライブラリのアンインストール

ライブラリを指定して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

以下のページでも、ライブラリの更新方法を詳しく説明しています。

no image
Pythonプログラミング通信講座で利用したPyPIのライブラリは、新しいバージョンがリリースされていれば更新できます。更新(PyPIではアップグレードといいます)は、インストールした時と同じくpip…

依存するライブラリを調べる方法

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

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を使っている方は、ぜひ参考にしてください。

no image
Pythonの外部ライブラリは、PyPI(Python Package Index:https://pypi.python.org/) で大抵探すことができ、インストールはpipを用いて以下のように簡…

エラーが表示されてインストールできない場合

まず考えられる原因はプロキシサーバーにより通信が制限されているケースです。その場合は、環境変数にサーバー情報を指定すると大抵はインストール可能になります。

それでもできない場合は、他の環境でライブラリのファイルをダウンロードして、ローカルからインストールします。それぞれの方法は、以下のサイトを参考にしてください。

no image
Pythonでは、ExcelやPDFのファイルを扱うのに、PyPIで公開されている外部ライブラリを使用します。インストールは、Pythonに同梱されているpipを用います。 例えば、Excelフ…